Cron
Version vom 15. Februar 2023, 09:39 Uhr von Linkai.zhang (Diskussion | Beiträge)
Chronos Tabula
- Der Name leitet sich vom griechischen Wort für Zeit ab
- Der Entwickler hat sich jedoch verschrieben
- Der cron-Daemon ist eine Jobsteuerung für wiederkehrende Aufgaben, die automatisch zu einer bestimmten Zeit aufgeführt werden sollen (cronjobs).
- z.B. Archivieren und Löschen von Logdateien, Erneuern von Zertifikaten, DynDNS oder andere Programme zur Instandhaltung des Systems
- Der Cron-Daemon überwacht dazu verschiedene Dateien und Verzeichnisse, in denen Anweisungen liegen, die in regelmäßigen Abständen ausgeführt werden sollen (crontabs).
- Beim Start des Daemons wird die Tabelle in den Arbeitsspeicher geladen
- Es wird minütlich nach auszuführenden Jobs und Änderungen im crontab geprüft
Crontabs
- Um Syntaxfehler zu vermeiden, werden die Tabellen nicht nur mit dem Texteditor bearbeitet, sondern über den Befehl: crontab
User-Crontab
- Jeder Benutzer des Systems kann eine eigene Crontab erstellen und bearbeiten
- Die Jobs, die darin aufgeführt sind, werden von Cron unter der jeweiligen Benutzerkennung ausgeführt
Systemweiter Crontab
- Befindet sich unter /etc/crontab
- Das Format unterscheidet sich etwas von den Benutzercrontabs
/etc/cron.d/
- Hier können sich Dateien im selben Format wie in /etc/crontab befinden
- nützlich für Snippets
- Alternativ auch in cron.daily, cron.hourly, cron.monthly oder cron.weekly
Aufbau einer Crontab Datei
Cron vs. Daemon
- Ein Daemon läuft immer, d.h.:
- + Updates laufen häufiger als einmal pro Minute
- + Es kann sich an seinen vorherigen Status erinnern, falls es notwendig ist
- - Verbraucht RAM selbst wenn es gerade nichts tut
- - Memory Leaks falls es sie gibt
- - Abhängig von der Implementation wird es nicht automatisch bei Fehlern neu gestartet
- Wenn man also eher robuste Aufgaben verteilt, empfiehlt sich Cron. Bei performance-lastigen Aufgaben eher ein Daemon.
- Man muss aber je nach Situation selbst entscheiden, was mehr Sinn macht.
Alternative Systemd
- Systemd-Service Dateien haben auch eine Timer-Funktion, wenn man sie einstellen will.
- Kann manchmal präziser sein, da Systemd die Zeit ab dem Boot zählt.
