Inhaltsverzeichnis
Cron
Mit Cron kann man Befehle regelmäßig ausführen. Ein Beispieleinsatzgebiet wäre der Shutdown des Systems jede Nacht oder das Ausführen von Backup-Skripten, der Download von Dateien per Skript oder einfach das Senden von Benachrichtigungen. In dieser Anleitung wird die grundlegende Konfiguration und Nutzung per Konsole erklärt.
Softwarevoraussetzungen: Editor | Paketveraltung
Schwierigkeitsgrad: Einfach
Ausgetestet mit folgenden Betriebssystemen: Ubuntu | Debian | teilweise weitere Distributionen
Cron einrichten
Mittels des Befehls
user@system:~$ crontab -e # für den eingeloggten Benutzer user@system:~$ sudo crontab -e # für den Benutzer root ("Befehle mit sudo")
kann man die sogenannten Tabellen editieren. Am Anfang hat man eine leere Seite vor sich, diese füllt man sich nun mit diesem Code:
#----------------------------------------------------------------- # Shell variable for cron SHELL=/bin/bash # PATH variable for cron PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11 #M S T M W Befehl #----------------------------------------------------------------- #-----------------------------------------------------------------
Cron-Event eintragen
Wie du siehst es mehrere Spalten wie M, T oder M, die wie folgt zu erklären sind:
1.M 2.S 3.T 4.M 5.W 1. M=Minute (0 - 59) 2. S=Stunde (0 - 23) 3. T=Tag (1 - 31) 4. M=Monat (1 - 12) 5. W=Wochentag (0 - 7) (Sonntag ist 0 und 7)
Der Befehl halt
(fährt den Rechner herunter und benötigt Root-Rechte) soll jeden Tag um sagen wir einmal 23 Uhr ausgeführt werden, das würde dann so aussehen:
user@system:~$ sudo crontab -e # öffnet die Crontab des Users Root
#M S T M W Befehl #----------------------------------------------------------------- 0 23 * * * halt #-----------------------------------------------------------------
Und schon fährt der PC jeden Abend um 23 Uhr herunter. Die fertige Cron-Tab würde dann so aussehen:
#----------------------------------------------------------------- # Shell variable for cron SHELL=/bin/bash # PATH variable for cron PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11 #M S T M W Befehl #----------------------------------------------------------------- 0 23 * * * halt #-----------------------------------------------------------------
Sonstige Zeitangaben und Beispiele
Weitere Zeitangaben
Es gibt nur die Angaben in „*“ und Zahlen sondern auch über Wörter, diese haben folgende Bedeutungen:
@reboot # beim Reboot @yearly # jährlich @monthly # monatlich @weekly # wöchentlich @daily # täglich @hourly # stündlich
Beispiele
Zum besseren Verständnis hier einige Beispielzeilen einer Cron-Tab:
#----------------------------------------------------------------- # Shell variable for cron SHELL=/bin/bash # PATH variable for cron PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11 #M S T M W Befehl #----------------------------------------------------------------- @reboot tuncfg # startet tuncfg beim Reboot 0 23 * * * halt # fährt den Rechner jeden Tag um 23:00 Uhr herunter @hourly /home/user/bin/del.sh # führt jede Stunde die Datei /home/user/bin/del.sh aus 9 9 * * 1 /home/user/bin/dig2.sh # führt jeden Montag um 09:09 Uhr /home/user/bin/dig2.sh aus @daily /home/user/bin/getipfile3.sh # führt jeden Tag /home/user/bin/getipfile3.sh aus 0 13 * * * apt-get update > /dev/null 2>&1 # lädt täglich um 13:00 Uhr die Paketlisten neu und leitet die Ausgabe ins Leere 55 23 * * * rsnapshot daily # startet rsnapshot daily jeden Tag um 23:55 Uhr 40 23 * * 6 rsnapshot weekly # startet rsnapshot weekly jeden Samstag um 23:40 Uhr 30 23 1 * * rsnapshot monthly # startet rsnapshot monthly am Ersten des Monats um 23:30 Uhr 0 10,13 * * * backup # führt den Befehl backup um 10:00 und 13:00 jeden Tag aus 0 */4 * * * backup # führt diesen Befehl alle 4 Stunden aus #-----------------------------------------------------------------
— chrisge 2014/12/06 17:10