Ein Cronjob auf Linuxsystemen ist eine geplante Aufgabe oder ein automatischer Prozess, der zu bestimmten Zeiten oder in regelmäßigen Abständen ausgeführt wird. Cron ist ein Dienst auf Unix-basierten Betriebssystemen, der es Benutzern ermöglicht, Skripte oder Befehle in Form von Cronjobs zu erstellen und einzurichten, um bestimmte Aufgaben automatisch auszuführen, ohne dass Benutzereingaben erforderlich sind. Dabei spielt es keine Rolle welches Linux basierte System verwendet wird. Auf einem Raspberry PI kann der Cronjob genau so eingerichtet werden wie auf Ubuntu oder MacOS.
Ein Cronjob besteht normalerweise aus einem Befehl oder einem Skript, das in einem speziellen Format in der Crontab (Cron-Tabelle) des Benutzers definiert wird. Diese Crontab enthält die Informationen über den Zeitplan, zu dem der Cronjob ausgeführt werden soll, wie etwa Minuten, Stunden, Tage oder Monate. Einmal eingerichtet, führt das System den Cronjob gemäß dem festgelegten Zeitplan aus, ohne dass der Benutzer weitere Aktionen ausführen muss.
Cronjobs werden häufig verwendet, um wiederkehrende Aufgaben wie Datenbank-Backups, Log-Rotation, Aktualisierung von Software-Paketen oder andere wiederholte Aufgaben zu automatisieren. Sie sind ein leistungsstolzes Werkzeug in der Linux-Systemverwaltung und ermöglichen Benutzern die Automatisierung von Aufgaben, um die Effizienz und Zuverlässigkeit von Linux-Systemen zu verbessern.
Cronjobs können auf zwei Ebenen erstellt werden:
Auf Systemebene
sudo su
nano /etc/crontab
==Achtung!== Cronjobs auf Systemebene (mit root Rechten) sollten mit Vorsicht eingerichtet werden, gerade wenn Skripte gestartet werden sollen, die anderen, weniger privilegierten Usern gehören. Das könnte zu „Privilege Escalation“ genutzt werden.
Als root User über /etc/crontab
0 15 * * * root /root/scripts/backup.sh
Der bessere Weg ist einen User Cron Job einzurichten.
Auf User Ebene
crontab -e
Je nachdem welche Editor als standard Editor eingerichtet wurde, kann es sein, dass die Datei in Vim geöffnet wird. Vim kann durch Eingabe von `:q` geschlossen werden.
Syntax
- Minute (5, oder */15 um einen Job alle 15 Minuten zu starten)
- Stunde
- Tage
- Wochentage
- Monate
- User (nur auf Systemebene)
- Befehl
- Ausgabe
Online Generator: https://www.bennetrichter.de/tools/crontab-generator/
Als User mit crontab -e
*/30 * * * * cd /home/pi/skripte/ && python3 do_something.py >> /home/pi/logs/do_something.log 2>&1
Details siehe: http://raspberry.tips/raspberrypi-einsteiger/cronjob-auf-dem-raspberry-pi-einrichten