Grundlegende Cron-Befehle
Wenn Sie die Crontab-Datei bearbeiten möchten (eine Datei mit Anweisungen zur Ausführung geplanter Aufgaben), geben Sie den folgenden Befehl im Terminal ein:
crontab -e
Das Ergebnis sieht folgendermaßen aus:

Höchstwahrscheinlich wird der vi-Editor geöffnet. Da dieser Editor häufig bei der Arbeit mit Cron verwendet wird, empfehlen wir, sich mit den grundlegenden vi-Befehlen vertraut zu machen.
Wenn Sie die Crontab-Datei eines anderen Benutzers bearbeiten möchten, verwenden Sie den Befehl crontab -u username -e. Nur Superuser können die Dateien anderer Benutzer bearbeiten, daher müssen Sie sudo su vor dem Befehl eingeben.

Wenn Sie die aktuelle Crontab-Datei des aktuellen Benutzers löschen möchten, geben Sie den folgenden Befehl ein:
crontab -r
Der folgende Befehl ist ähnlich wie der -r-Befehl, fordert aber eine Bestätigung vor dem Löschen der Crontab-Datei an:
crontab -i
Wenn Sie den Inhalt der geöffneten Crontab-Datei anzeigen möchten, geben Sie den folgenden Befehl im Terminal ein:
crontab -l
Dieser Befehl kann auch anzeigen, ob Sie Crontab-Dateien haben. Wenn keine Dateien erstellt wurden, wird die folgende Meldung angezeigt:

Um Crontab-Dateien anderer Benutzer anzuzeigen, geben Sie den folgenden Befehl als Superuser ein:
crontab -u username -l

Cron-Syntax
Eine Crontab-Datei besteht aus zwei Teilen: dem Zeitplan und dem Befehl. Der Befehl sieht folgendermaßen aus:
* * * * * /bin/sh backup.sh
Zum Beispiel:
- * * * * /bin/sh backup.sh führt die Sicherung jede Minute aus.
- 30 18 * * * rm /home/sydtesting/tmp/* bedeutet, dass tmp-Dateien aus /home/sydtesting/tmp jeden Tag um 18:30 Uhr gelöscht werden.
Die Crontab-Datei hat fünf Felder. Jedes Feld wird durch ein Sternchen dargestellt und definiert Datum und Uhrzeit der Aufgabe, die regelmäßig ausgeführt werden soll.

- Minuten — die Minute der Stunde, in der der Befehl ausgeführt wird (von 0 bis 59).
- Stunden — die Stunde, in der der Befehl startet (von 0 bis 23).
- Tag des Monats — an welchem Tag des Monats der Befehl ausgeführt werden soll (von 1 bis 31).
- Monat — in welchem Monat der Befehl ausgeführt wird (von 1 bis 12).
- Wochentag — an welchem Wochentag der Befehl ausgeführt werden soll (von 0 bis 6, 0 — Sonntag).
Bestimmte Symbole haben ebenfalls eine Bedeutung. Verwenden Sie:
- Sternchen (*) zur Angabe von Planungsparametern.
- Komma (,) zur Angabe von zwei oder mehr Ausführungszeitoptionen.
- Bindestrich (-) zur Festlegung eines Ausführungszeitbereichs.
- Schrägstrich (/) zur Erstellung bestimmter Zeitintervalle innerhalb eines bestimmten Bereichs.
- Last (L) zur Angabe des letzten Wochentags in einem bestimmten Monat. Zum Beispiel bedeutet 3L den letzten Mittwoch.
- Weekday (W) zur Angabe des nächsten Werktags zu einem bestimmten Zeitpunkt. Zum Beispiel bedeutet 1W, dass das Skript am nächsten Werktag zum ersten Tag ausgeführt wird; wenn der 1. ein Sonntag ist, wird der Befehl am Montag (dem 2.) ausgeführt.
- Hash (#) zur Angabe des Wochentags im Monatsfeld (von 1 bis 5). Zum Beispiel bedeutet 1#2 den zweiten Montag.
- Fragezeichen (?) zur Auswahl eines bestimmten Tages für die Skriptausführung. Für den korrekten Betrieb müssen Sie entweder den Tag des Monats oder die Tagesnummer angeben — Sie können nicht beides gleichzeitig angeben. Dieses Symbol ermöglicht es, einen Wert leer zu lassen.
Beispiele
Beachten Sie, dass die Befehlsausgabe automatisch an die lokale E-Mail gesendet wird. Wenn Sie diese E-Mails nicht erhalten möchten, fügen Sie >/dev/null 2>&1 zur Syntax hinzu, wie im Beispiel gezeigt:
0 5 * * * /root/backup.sh >/dev/null 2>&1
Wenn Sie möchten, dass die Ausgabe an eine andere E-Mail-Adresse gesendet wird, können Sie MAILTO hinzufügen, gefolgt von der E-Mail-Adresse. Zum Beispiel:
MAILTO="[email protected]"
0 3 * * * /root/backup.sh >/dev/null 2>&1
Weitere Syntaxbeispiele:
| Ausdruck | Ergebnis |
|---|---|
| 0 0 * * * /bin/sh backup.sh | Datenbanksicherung um Mitternacht einmal täglich durchführen. |
| 0 6,18 * * * /bin/sh backup.sh | Datenbanksicherung zweimal täglich um 6:00 und 18:00 Uhr durchführen. |
| 0 */6 * * * /scripts/monitor.sh | Alle sechs Stunden eine Überwachung durchführen. |
| */10 * * * * /home/user/script.sh | Einen Cron-Job für die Skriptdatei im Home-Verzeichnis alle 10 Minuten ausführen. |
| 0 * 20 7 * /bin/sh backup.sh | Datenbanksicherung jede Stunde am 20. Juli ausführen. |
| 0 0 * * 2 * /bin/sh | Datenbanksicherung um Mitternacht jeden Dienstag ausführen. |
| * * * 1,2,5 * /script/script.sh | Den Befehl im Januar, Februar und Mai ausführen. |
| 10-59/5 5 * * * /home/user/script.sh | Den Befehl alle 5 Minuten um 5:00 Uhr morgens ausführen, beginnend ab 5:10 Uhr. |
| 0 8 1 */3 * /home/user/script.sh | Den Befehl vierteljährlich am 1. Tag um 8:00 Uhr ausführen. |
| * * * * * /scripts/script.sh; /scripts/scrit2.sh | Mehrere Jobs in einem Cron-Job planen. |
| @reboot /scripts/script.sh | Eine bestimmte Aufgabe bei jedem Systemstart ausführen. |
| 0 0 1 * * /home/user/script.sh | Den Befehl am ersten Tag jedes Monats ausführen. |