Cronjob unter Debian, CentOs und Ubuntu Linux erstellen

Eine kleine Sammlung, wie man einen Cronjob unter Debian, CentOs und Ubuntu Linux erstellen kann.

Cronjob unter Debian, CentOs und Ubuntu Linux erstellen
Eine kleine Sammlung, wie man einen Cronjob unter Debian, CentOs und Ubuntu Linux erstellen kann.

Eine kleine Sammlung, wie man einen Cronjob unter Debian, CentOs und Ubuntu Linux erstellen kann. Der Der Cron-Daemon dient der zeitbasierten Ausführung von Prozessen in Unix und unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, um wiederkehrende Aufgaben – sogenannte Cronjobs – zu automatisieren.

Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.

Bei gemieteten Webspace-Paketen haben die Endkunden meist keinen Zugriff auf Cronjobs, bei dedizierten Servern oder einem vServer kann man die Cronjobs immer selbst einrichten, wenn man vollen Root-Zugriff besitzt.

Wichtige Beispiele:

EINGERICHTETE CRONJOBS AUSLESEN LASSEN:

1

crontab -l

CRONJOBS EINES BENUTZERS ANZEIGEN:

1

crontab -u benutzername -L

Neuen Cronjob erstellen:

Mit dem folgenden Befehl öffnen Sie den Editor, um die Cronjobs bearbeiten zu können:

1

crontab -e

Wenn auf dem Server noch keine Crons definiert wurden, finden Sie größtenteils eine leere Datei oder eine Datei mit auskommentierten Beispielen vor.

Cronjob Syntax:

Minute Stunde Tag / Monat Monat Wochentag Bedeutung
* * * * * Jede Minute, rund um die Uhr, sieben Tage die Woche
0 0 * * * Täglich null Uhr
5 * * * * Fünf Minuten nach jeder vollen Stunde
*/5 * * * * Alle 5 Minuten
59 23 * * 0 Jeden Sonntag (Sonntag kann als 0 oder 7 geschrieben werden) um 23:59 Uhr
20,30 1 * * 1-5 Montags bis freitags jeweils um 01:20 und 01:30 Uhr
0 1 1-7 12 1 ACHTUNG: Nicht “jeden ersten Montag im Dezember”, sondern “1. bis 7. Dezember UND jeden Montag im Dezember”. da hier der Sonderfall greift, dass nur entweder der Tag des Monats ODER der Tag der Woche übereinstimmen muss (siehe oben).

Jeder Stern bzw. jeder Wert kann durch einen Tabulator oder ein Leerzeichen getrennt werden.

Weitere Cronjob-Beispiele:

JEDEN TAG UM 00:30 WIRD EINE URL PER CURL AUFGERUFEN:

1

30 0 * * * curl http://website.xy/task.php

STARTET ZU JEDER VOLLEN STUNDE EINEN ZEITABGLEICH MIT EINEM TIMESERVER:

1

0 * * * * /usr/sbin/ntpdate timeserver.com

SENDET JEDE MINUTE EINEN PING:

1

* * * * * 8.8.8.8

FÜHRT JEDEN FREITAG UM 23:50 EIN SHELL-SCRIPT AUS:

1

23 50 * * 5 /root/script.sh

STARTET JEDES JAHR AM 01.01. EINEN ZEITABGLEICH MIT EINEM TIMESERVER:

1

0 1 1 1 * /usr/sbin/ntpdate timeserver.com

TASK ALLE 3 STUNDEN AUSFÜHREN LASSEN:

1

0 */3 * * * /root/script.sh

TASK ALLE 15 MINUTEN AUSFÜHREN LASSEN:

1

*/15 * * * * /root/backup.sh

Da diverse Scripte auch Meldungen auf StdOut oder StdErr ausgeben, gibt es natürlich auch eine Möglichkeit, diese Meldungen in eine Log-Datei umzuleiten.

Befehl, der die Log-Datei ständig erweitert. Ein Pfeil würde die Datei immer neu schreiben:

1

*/15 * * * * /root/backup.sh >> /root/backup.log

E-Mail Benachrichtigungen für Cronjobs kann man über folgende Variable am Anfang der Cronjob-Datei aktivieren oder deaktivieren:

Shell

1

2

MAILTO="" # Schickt keine E-Mail bei Ausführung der Cronjobs

MAILTO="email@email.email" # Würde eine E-Mail senden bei Ausführung der Cronjobs