Wie erstellt man ein Cronjob
Ein Cronjob ist eine Funktion auf einem Raspberry Pi, mit der man Programme oder Skripte automatisch zu festgelegten Zeiten starten kann. In unserem Fall wird der Cronjob verwendet, um den Code einmal pro Tag automatisch neu zu starten. Dadurch wird sichergestellt, dass das Programm regelmäßig frisch gestartet wird, um mögliche Fehler durch lange Laufzeiten zu vermeiden. So läuft das System stabil weiter, ohne dass man es manuell neu starten muss.
Ein Cronjob besteht aus zwei Teilen: einem Zeitplan und einem Befehl, der zu dieser Zeit ausgeführt werden soll. Der Zeitplan wird in einer speziellen Schreibweise angegeben, bestehend aus fünf Zahlenfeldern. Diese legen genau fest, wann der Befehl ausgeführt werden soll – zum Beispiel jeden Tag um Mitternacht, jeden Montag um 6:30 Uhr oder alle 15 Minuten. Die Felder geben die Minuten, Stunden, Tage, Monate und Wochentage an. Dadurch lässt sich der Zeitpunkt sehr genau festlegen.
Ein typischer Befehl, der durch einen Cronjob ausgeführt wird, könnte zum Beispiel so aussehen:
0 0 * * * /bin/bash -c "source /pfad/zur/virtuellenumgebung/bin/activate && python /pfad/zum/script/main.py"
In diesem Beispiel bedeutet der Anfang 0 0 * * *, dass das Skript jeden Tag um Mitternacht (00:00 Uhr) ausgeführt wird. Danach wird in einer neuen Bash-Sitzung zunächst eine virtuelle Umgebung aktiviert. In dieser Umgebung sind alle notwendigen Python-Pakete und Einstellungen gespeichert, die das Skript braucht, um korrekt zu funktionieren. Anschließend wird das eigentliche Python-Programm gestartet, das sich in einem bestimmten Ordner befindet. Die Pfade in diesem Beispiel wie /pfad/zur/virtuellenumgebung und /pfad/zum/script/main.py sind Platzhalter und müssen in der Praxis durch die tatsächlichen Speicherorte ersetzt werden.
Um diesen Cronjob auf einem Raspberry Pi einzurichten, öffnet man ein Terminal und gibt den Befehl crontab -e ein. Dadurch öffnet sich der persönliche Crontab-Editor des aktuellen Benutzers. Dort kann man am Ende der Datei die gewünschte Zeile mit Zeitplan und Befehl einfügen. Sobald man die Datei speichert und den Editor verlässt, ist der Cronjob aktiv und wird wie geplant automatisch ausgeführt.