So planen Sie Aufgaben mit Cron und CornTab [Linux]
Wenn Sie mit Linux vertraut sind, werden Sie wissen, dass Cron die Anwendung ist, die zum Planen und Automatisieren von Aufgaben in einer Linux-Umgebung verwendet wird. CronTab ist der Befehl, mit dem auf die Cron-Datei zugegriffen wird, in der der Benutzer Aufgaben festlegen und planen kann. Nein, ich habe CronTab im Titel nicht falsch geschrieben. CornTab ist eine webbasierte GUI, mit der Sie Ihren Zeitplan und Ihre Befehle festlegen und dann einfach in Ihre Cron-Datei kopieren und einfügen können.
Es gibt andere GUI-Apps, die einfach zu bearbeiten sind, wie zum Beispiel Gnome-Schedule. Wenn Sie jedoch keine neuen Apps installieren möchten, ist Corntab eine großartige webbasierte Lösung, insbesondere wenn Sie einen Cron-Job auf einem Computer einrichten, der nicht über Gnome-Schedule verfügt oder nicht damit kompatibel ist.
Die Verwendung von Cron ist ziemlich offensichtlich, angefangen bei der Planung von Backups über das Ausführen von benutzerdefinierten Skripts zu bestimmten Zeiten bis hin zum Öffnen von Programmen nach einem Zeitplan. Cron ist der Weg, um es zu erledigen.
Beginnen wir mit dem Planen einer Aufgabe, die einfach jede Minute in einer Protokolldatei einen Zeitstempel erstellt, indem Sie zunächst die Shell / Befehlszeile verwenden. Dann werden wir die gleichen Schritte mit Corntab durchlaufen, damit Sie sehen können, wie einfach es ist. Das Erstellen eines Zeitstempels oder einer beliebigen Ausgabe in einer Protokolldatei ist eine großartige Möglichkeit, um zu testen, ob Ihre Einstellungen in Cron funktionieren, und natürlich um Ihren Zeitplan zu überwachen.
Öffnen Sie ein Terminal. Bevor wir anfangen, ist es am besten zu wissen, wo man Informationen findet. Das Handbuch für crontab kann durch folgende Eingabe gefunden werden:
Mann Crontab
Sicher, Sie können Google und finden Sie andere Tutorials und wahrscheinlich die Handbuchseiten online, aber es ist immer gut, sich in der Befehlszeile zu kennen!
Die Syntax für Cron ist wie folgt:
crontab [-u Benutzer] Datei crontab [-u Benutzer] [-i] {-e | -l | -r} [-s]
-l
Option-l
bewirkt, dass die aktuelle Crontab auf der Standardausgabe angezeigt wird.-r
Option-r
bewirkt, dass die aktuelle Crontab entfernt wird.-e
Option-e
wird verwendet, um die aktuelle Crontab mit einem Editor zu bearbeiten, der von den Umgebungsvariablen VISUAL oder EDITOR angegeben wird.-u
Option gibt den Namen des Benutzers an, dessen crontab optimiert werden soll. Wenn diese Option nicht angegeben wird, verwendet crontab den aktuellen Benutzer, der den Befehl ausführt.-s
Option-s
hängt die aktuelle SELinux-Sicherheitskontextzeichenfolge als MLS_LEVEL-Einstellung an die crontab-Datei an, bevor sie bearbeitet / ersetzt wird (siehe die Dokumentation von MLS_LEVEL in crontab. Dies wird nicht in allen Linux / cron-Varianten verwendet).
Beachten Sie, dass einige Programme mit Root-Rechten ausgeführt werden müssen. Wenn dies der Fall ist, müssen Sie mit dem Befehl su
oder dem Befehl sudo
der in den meisten Linux-Varianten (Debian, Ubuntu, Fedora) funktionieren sollte, zum root-Benutzer wechseln.
So bearbeiten Sie Ihren Crontab-Typ:
Crontab -e
oder
sudo crontab -e
Einige Grundregeln für Cron
- Ein Feld kann ein Stern (*) sein, der immer für "vorletztes" steht.
- m-Minuten (0-59)
- h-Stunde (0-23)
- Tag des Monats (1-31)
- Mon-Month des Jahres (1-12)
- dow -day der Woche (0-6 mit 0 = Sonntag)
- Befehl-Anwendung, Skript, etc.
Erweiterte Kurzcodes:
Zeichenfolge Bedeutung
- ---
@reboot Einmal beim Start ausgeführt.
@yearly Lauf einmal im Jahr, "0 0 1 1 *".
@annual (wie @yearly)
@monthly Einmal im Monat ausführen, "0 0 1 * *".
@weekly Führen Sie einmal pro Woche "0 0 * * 0" aus.
@daily Lauf einmal am Tag, "0 0 * * *".
@midnight (wie @daily)
@hourly Lauf einmal pro Stunde, "0 * * * *"
Durch Kommas getrennte Werte können verwendet werden, um mehr als eine Instanz eines bestimmten Befehls innerhalb eines Zeitraums auszuführen.
Gestrichelte Werte können verwendet werden, um einen Befehl kontinuierlich auszuführen.
Lass uns unseren Cronjob einrichten.
Wenn Sie Crontab zum ersten Mal eingeben, wird Ihnen wahrscheinlich eine Auswahl von Editoren zur Verfügung gestellt. Fühlen Sie sich frei, irgendwelche zu wählen, aber ich bleibe normalerweise bei Nano, da es einfach, sauber ist und die Arbeit erledigt.
Um unsere ursprüngliche Aufgabe zu erfüllen, geben Sie einfach Folgendes ein:
* * * * * echo "Die aktuelle Minute ist: $ (Datum)" >> /tmp/minute.log
"Control-x" wird aufgefordert zu speichern, dann wird bestätigen bestätigen. Sie sollten sehen, dass Cron erfolgreich aktualisiert wurde. Der Job druckt das aktuelle Datum / die aktuelle Uhrzeit jede Minute in eine Datei namens minute.log im Verzeichnis / tmp.
Hier ist die automatische Ausgabe für 6 Minuten:
Lassen Sie uns Lust bekommen, wie wäre es mit dem Drucken des Datums alle 2 Minuten ...
* / 2 * * * * echo "Die aktuelle Minute ist: $ (Datum)" >> /tmp/minute.log
Unter Verwendung von * / n, wobei n eine positive ganze Zahl ist, wird jede n Minute oder alle n Stunden angegeben.
Wie wäre es mit dem Drucken des Datums um 5:30 Uhr jeden Montag und Freitag:
30 5 * * 1, 5 echo "Die aktuelle Minute ist: $ (Datum)" >> /tmp/minute.log
Fühlen Sie sich frei, mit der Planung von einfachen "Echo" zu Logfiles herumzuspielen. Dann gehe zu Skripten und Anwendungen.
Mit Corntab spielen
Versuchen wir nun CornTab, den webbasierten Cron-Editor, der sich um die Syntax kümmert, während wir einfach auf die Optionen klicken.
Hier ist ein Schritt für Schritt, um eine Crontab zu erstellen, die das aktuelle Datum / die aktuelle Zeit alle zwei Minuten ausdruckt, nur im Januar, Februar, März und April, am Donnerstag und Freitag.
Klicken Sie zuerst auf "alle n Minuten" und verschieben Sie den Schieberegler auf 2 Minuten.
Als Nächstes klicken Sie, um den Monat zu erweitern, klicken Sie auf "jeden ausgewählten Monat" und wählen Sie Jan, Feb, Mar, Apr.
Als Nächstes klicken Sie, um den Tag der Woche zu erweitern, wählen Sie "jeden ausgewählten Tag der Woche" und dann "Do und Fr".
Klicken Sie schließlich zum Erweitern auf Befehl, und geben Sie den Code / das Skript ein. Dann können Sie den vollständigen Cron-Code aus Corntab kopieren und in Ihre Crontab einfügen, indem Sie die Schritte am Anfang dieses Artikels verwenden.
Referenzen und weitere Informationen zu Cron:
http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto