CronJob RaspberryPiCronJob RaspberryPi

Wenn man in seinem Netzwerk einen Raspberry Pi mit einem PiHole am laufen hat, sollte man sich für das Updaten / warten CronJobs anlegen.

CronJobs sind zeitlich geplante Aufgaben, die der RaspberryPi automatisiert durchführt. In Windows sind es die geplanten Tasks / Aufgaben.

Um ConJobs zu erstellen, verbindet man sich am besten mit SSH auf den RaspberryPi.

Raspberry Pi für Dummies (Taschenbuch)
by McManus, Sean (Autor), Cook, Mike (Autor), Franken, Gerhard (Übersetzer)

Price: 19,99 €
28 used & new available from 19,99 €

Erstellen des CronJobs

um einen CronJob zu erstellen verwendet man den folgenden Befehl:

sudo crontab -e

Beim ersten Aufrufen wird man nach dem zu verwendeten Editor gefragt:

Cron Job Editor Auswahl

Ich verwende den Nano Editor.

Der Editor öffnet sich und man sieht einige Zeilen Kommentar:

CronJob File

Kommen wir zum eigentlichen erstellen eines CronJobs

Die Syntax für die Konfiguration des geplanten Jobs ist auf den ersten Blick nicht leicht zu verstehen.
Im nächsten Code-Block ist die Syntax beschrieben:

	
Minute | Stunde | Tag des Monats | Monat | Tag der Woche | Benutzer | Befehl

Hier jetzt ein Beispiel für ein CronJob der jeden Sonntag um 13 Uhr ausgeführt wird:

0 13 * * * PATH="$PATH:/usr/local/bin/" pihole -up 

smart-home-komponente - Raspberry Pi 5 / 4GB Desktop-Starter-Kit (32 GB) weiß

Price: 119,00 €

2 used & new available from 119,00 €

  • Tag des Monats sind die Werte von 1 – 31 möglich.
  • Monat sind die Werte von 1 – 12 möglich.
  • Tag der Woche sind die Werte 0 – 7 möglich. Hier ist zu beachten, dass der Sonntag den Wert 0 und 7 hat.

Wenn ich z.B. einen CornJob von 13 bis 18 haben möchte, gebe ich das so an:

0 13-18 * * * PATH="$PATH:/usr/local/bin/" pihole -up 

Nun wird der Befehl pihole -up um 13 Uhr, 14 Uhr, 15 Uhr, 16 Uhr, 17 Uhr und 18 Uhr ausgeführt.

Variablen

Der CronJob bietet auch die Möglichkeit Variablen zu verwenden.

  • @reboot => nach Neustart
  • @hourly => stündlich
  • @daily => täglich
  • @weekly => wöchentlich
  • @monthly => monatlich
  • @yearly => jährlich

Der Aufruf in der CronJob-Datei sieht dann so aus:

@reboot PATH="$PATH:/usr/local/bin/" pihole -up 

Jetzt würde nach jedem reboot der Pihole-Server aktualisiert werden.

Logging

Natürlich möchte man wissen ob der CronJob auch tatsächlich gelaufen ist oder ein Fehler aufgetreten ist.

Um dies zu erzielen fügt man den folgenden Part am ende des jeweiligen Jobs hinzu

 > /var/log/piholUP.log 2>&1

Raspberry Pi: Das große Handbuch. Über 1.000 Seiten in Farbe. Mit Einstieg in Linux, Python und Elektrotechnik. Aktuell zum Raspberry Pi 5, Pi-OS »Bookworm« und den GPIO-Bibliotheken (Gebundene Ausgabe)
by Kofler, Michael (Autor), Kühnast, Charly (Autor), Scherbeck, Christoph (Autor)

Price: 44,90 €
1 used & new available from 44,90 €

Mit dem Zeichen > wird angegeben, dass die Meldungen ins Log geschrieben werden. Allerdings wird das Log bei jeder Ausführung überschrieben.

Verwendet man >> werden die Log-Meldungen angehängt.

Mit dem Zusatz 2>&1 werden nicht nur die normalen Meldungen sondern auch die Fehler in die Log-Datei geschrieben.

Von Michael