Crontab unter Linux: BEISPIELE zur Jobplanung
โก Intelligente Zusammenfassung
Crontab in Linux plant die automatische Ausfรผhrung von Befehlen zu festgelegten Zeiten, Daten oder Intervallen mithilfe des Cron-Daemons und ermรถglicht Administratoren so die Automatisierung von Backups, Protokollbereinigung, Benachrichtigungen und routinemรครigen Systemwartungen ohne manuelles Eingreifen.

Crontab, kurz fรผr Cron-Tabelle, ist die Konfigurationsdatei und die Befehlszeile, die den Cronjob steuert. Linux Jobplanung. In den folgenden Abschnitten werden das Crontab-Format, die Befehle zum Hinzufรผgen, Auflisten und Entfernen von Jobs, die speziellen @-Zeichenketten sowie sofort einsatzbereite Planungsbeispiele erlรคutert.
Was ist Crontab?
Cron ist nach dem griechischen Wort โChronosโ benannt, was Zeit bedeutet. Es handelt sich um einen Systemprozess (einen Daemon), der Aufgaben automatisch nach einem festgelegten Zeitplan ausfรผhrt. Cron ist eine Reihe von Befehlen, die zum Ausfรผhren regelmรครig geplanter Aufgaben verwendet werden. Crontab steht fรผr โCron-Tabelleโ und ermรถglicht die Verwendung des Cron-Job-Schedulers zur Ausfรผhrung dieser Aufgaben.
Crontab ist auch der Name des Programms, mit dem dieser Zeitplan bearbeitet werden kann. Es wird durch eine Crontab-Datei gesteuert โ eine Konfigurationsdatei, die die Shell-Befehle auflistet, die regelmรครig nach dem angegebenen Zeitplan ausgefรผhrt werden sollen.
Warum Cron-Jobs verwenden?
Hier sind die wichtigsten Grรผnde fรผr die Verwendung von Cronjobs unter Linux:
- Erstellt planmรครige Backups von Protokolldateien oder Datenbanken.
- Alte Protokolldateien werden automatisch gelรถscht.
- Archives und purges Datenbanktabellen.
- Versendet Benachrichtigungs-E-Mails wie Newsletter oder Erinnerungen an das Ablaufdatum von Passwรถrtern.
- Fรผhrt regelmรครige Bereinigungen des Datenzwischenspeichers durch.
- Automatisiert wiederkehrende Unix- und Linux-Aufgaben.
- Automatisiert die routinemรครige Systemwartung.
Wie verwende ich Cron unter Linux?
Das Linux-Systempaket enthรคlt einen praktischen Aufgabenplaner namens crontab. Crontab ist beliebt, weil sich Aufgaben so planen lassen, dass sie als Root-Benutzer ausgefรผhrt werden, was automatisierte Systemรคnderungen vereinfacht. Man รคndert die Aufgabe einfach einmal und wartet dann, bis sie planmรครig erneut ausgefรผhrt wird.
Linux Crontab-Format
Ein Linux-Crontab-Eintrag besteht aus sechs Feldern. Die ersten fรผnf Felder definieren Datum und Uhrzeit der Ausfรผhrung, das sechste Feld enthรคlt den auszufรผhrenden Befehl.
Crontab-Syntax:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
Das untenstehende Diagramm ordnet jedem Sternchen in einem Crontab-Eintrag das Feld zu, das es steuert, von der Minute bis zum Wochentag, gefolgt vom auszufรผhrenden Befehl.
Die fรผnf Zeitfelder akzeptieren folgende Werte: Minute (0โ59), Stunde (0โ23), Tag des Monats (1โ31), Monat (1โ12 oder Jan.โDez.) und Wochentag (0โ7, wobei 0 und 7 beide Sonntag bedeuten). Jedes Feld wird mit folgenden Sonderzeichen gesteuert:
- Sternchen (*): Entspricht jedem mรถglichen Wert fรผr dieses Feld.
- Definiere einen Bereich: Verwenden Sie einen Bindestrich, um einen Bereich anzugeben, z. B. 1-10, 30-40, Jan-Mรคr oder Mo-Mi.
- Definieren Sie mehrere Bereiche: Verwenden Sie Kommas, um Bereiche zu kombinieren, z. B. Apr-Jun,Okt-Dez.
So fรผgen Sie Crontab hinzu/รคndern es
Benutzer kรถnnen ihre eigenen Crontab-Jobs mit dem folgenden Crontab-Befehl bearbeiten. Die Option -u bezieht sich auf die Crontab eines bestimmten Benutzers; geben Sie daher den Benutzernamen wie in den spรคteren Beispielen gezeigt an:
$ crontab -u -e
Der obige Befehl รถffnet die persรถnliche Crontab-Konfiguration fรผr Ihr System, die Sie in Ihrem Standard-Texteditor bearbeiten kรถnnen.
Ein Neustart von cron ist nicht erforderlich; Ihre รnderungen werden automatisch รผbernommen. Ihre aktuellen Jobs kรถnnen Sie mit folgendem Befehl anzeigen:
$ crontab -l
Um Ihre Crontab-Aufgaben zu entfernen, verwenden Sie folgenden Befehl:
$ crontab -r
Um einen Job in der Crontab hinzuzufรผgen oder zu aktualisieren, verwenden Sie den folgenden Befehl:
crontab -e
Um die Crontab eines anderen Benutzers zu bearbeiten, geben Sie den Benutzer mit der Option -u an:
crontab -u username -e
So listen Sie Crontab auf
So zeigen Sie die Crontab-Eintrรคge des aktuellen Benutzers an:
crontab -l
So zeigen Sie die Crontab-Eintrรคge eines bestimmten Benutzers an:
crontab -u username -l
Wichtige Crontab-Beispiele
Hier sind einige wichtige, sofort einsatzbereite Beispiele fรผr Crontab-Zeitplรคne:
| Beschreibung | Befehl |
|---|---|
| Fรผhrt die verschiedenen geplanten Aufgaben aus. Der unten stehende Befehl wird tรคglich um 7:00 Uhr und 17:00 Uhr ausgefรผhrt. |
0 7,17 * * * /scripts/script.sh
|
| Fรผhrt alle 5 Minuten einen Cronjob aus. |
*/5* * * * * /scripts/script.sh
|
| Fรผhrt die Aufgabe jedes Mal aus Monday um 5 Uhr morgens. Das ist hilfreich fรผr wรถchentliche Aufgaben wie die Systembereinigung. |
0 5 * * mon /scripts/script.sh
|
| Fรผhrt Ihr Skript in einem 3-Minuten-Intervall aus. |
*/3 * * * * /scripts/monitor.sh
|
| Plant einen Cronjob, der in bestimmten Monaten ausgefรผhrt wird โ hier im Februar, Juni und September. |
* * * feb,jun,sep * /script/script.sh
|
| Wird an ausgewรคhlten Tagen ausgefรผhrt. Dieses Beispiel wird jeden Tag ausgefรผhrt. Monday und Mittwoch um 5 Uhr. |
0 17 * * mon,wed /script/script.sh
|
| Ermรถglicht es Cron, am ersten Samstag jedes Monats ausgefรผhrt zu werden. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
| Fรผhrt ein Skript in einem 6-Stunden-Intervall aus, das wie folgt konfiguriert ist. |
0 */6 * * * /scripts/script.sh
|
| Plant eine Aufgabe, die zweimal ausgefรผhrt werden soll am Monday und Dienstag. Verwenden Sie dazu die folgenden Einstellungen. |
0 4,17 * * mon,tue /scripts/script.sh
|
| Plant einen Cronjob, der alle 15 Sekunden ausgefรผhrt wird. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
| Plant Aufgaben jรคhrlich. @yearly entspricht etwa โ0 0 1 1 *โ. Die Aufgabe wird einmal jรคhrlich am 1. Januar um Mitternacht ausgefรผhrt โ praktisch fรผr Neujahrsgrรผรe. |
@yearly /scripts/script.sh
|
| Fรผhrt Aufgaben monatlich aus. @monthly entspricht etwa โ0 0 1 * *โ. Die Aufgabe wird jeweils am ersten Tag des Monats um Mitternacht ausgefรผhrt. |
@monthly /scripts/script.sh
|
| Fรผhrt mehrere Aufgaben mit einem einzigen Cron-Eintrag aus. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
| Plant Aufgaben wรถchentlich. @weekly entspricht in etwa โ0 0 * * 0โ. Es fรผhrt wรถchentliche Aufgaben wie die Systembereinigung jeden Sonntag um Mitternacht aus. |
@weekly /bin/script.sh
|
| Plant Aufgaben tรคglich. @daily entspricht etwa โ0 0 * * *โ. Die Aufgabe wird einmal tรคglich um Mitternacht ausgefรผhrt. |
@daily /scripts/script.sh
|
| Fรผhrt Aufgaben stรผndlich aus. @hourly entspricht in etwa โ0 * * * *โ. Die Aufgabe wird zu Beginn jeder Stunde ausgefรผhrt. |
@hourly /scripts/script.sh
|
| Fรผhrt Aufgaben beim Systemneustart aus. @reboot ist nรผtzlich fรผr Aufgaben, die das System beim Start ausfรผhren soll, sodass Hintergrundprozesse automatisch gestartet werden. |
@reboot /scripts/script.sh
|

