Cronjobs in Linux
Mit Cronjobs lassen sich Programme zu einem bestimmten Zeitpunkt einmalig oder regelmäßig ausführen, so dass man nicht persönlich anwesend sein muss, um das Programm zu starten. Allerdings muss der betreffende Rechner zu diesem Zeitpunkt im Betrieb sein.
Nehmen wir nun beispielsweise an, wir möchten regelmäßig Wetterdaten für einen bestimmten Ort abrufen und diese zur späteren Weiterverarbeitung in einer Datei speichern. Dazu können wir ein Bash-Skript erstellen, das anschließend per Cronjob ausgeführt wird.
Um die Wetterdaten abfragen zu können wird zunächst folgendes Paket benötigt:
sudo apt-get install weather-util
Installation per apturl
Folgendes Bash-Skript wird dann unter dem Namen wetter.sh gespeichert:
#!/usr/bin/bash
# Schreibt die Wetterdaten für den Flughafen Berlin-Schönefeld in die Datei wetter.log
$(which date) >> wetter.log
$(which weather) sxf >> wetter.log
Mit dem Kommando crontab -e
kann man dann den Zeitplan für das Ausführen dieses Skripts festlegen, wobei man zunächst einen Terminal-Editor auswählen muss, mit dem die Crontab (Cron-Tabelle) editiert werden soll.
Der Zeitplan besteht aus einer Textzeile, die man an das Ende der Crontab anfügt. Diese Zeile enthält sechs durch Leerzeichen getrennte Angaben:
• Minute
• Stunde
• Tag des Monats
• Monat (Januar = 1)
• Wochentag (Sonntag = 0 und 7)
• das auszuführende Kommando
Nicht festgelegte Angaben werden durch das *-Zeichen repräsentiert.
Beispiele:
# am 15. August um 16:45 Uhr:
45 16 15 8 * /home/BENUTZER/wetter.sh
# jeden Montag um 10:30 Uhr:
30 10 * * 1 /home/BENUTZER/wetter.sh
# zu jeder vollen Stunde:
0 * * * * /home/BENUTZER/wetter.sh
# mittwochs im September alle 10 Minuten:
*/10 * * 9 3 /home/BENUTZER/wetter.sh
Wird diese Datei nun gespeichert, wird das Skript im angegebenen Pfad entsprechend dem Zeitplan in der Crontab ausgeführt.