Cron: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (29 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | + | = Chronos Tabula = | |
| − | + | * Der Name leitet sich vom griechischen Wort für Zeit ab | |
| + | * Der Entwickler hat sich jedoch verschrieben | ||
| − | + | [[Bild:cron-namensherkunft.png]] | |
| − | |||
| − | |||
| − | + | * 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, [https://www.duckdns.org/install.jsp 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 = | |
| − | Crontab- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
* * * * * auszuführender Befehl | * * * * * auszuführender Befehl | ||
| Zeile 57: | Zeile 42: | ||
│ └────────── Stunde (0-23) | │ └────────── Stunde (0-23) | ||
└──────────── Minute (0-59) | └──────────── Minute (0-59) | ||
| + | z.B. wöchtenliches Backup der Heimatverzeichnisse aller Benutzer um 3 Uhr morgens: | ||
| + | |||
| + | 0 3 * * 1 tar -zcf /var/backups/home.tgz /home/ | ||
| + | =Beispiele= | ||
| + | ;<nowiki>*</nowiki>/2 - Dieser Eintrag führt die Aufgabe alle 2 Minuten aus. | ||
| + | */2 * * * * /pfad/zum/skript.sh | ||
| + | ;1,3,5,9 - Dieser Eintrag führt die Aufgabe zu bestimmten Minuten aus, nämlich 1, 3, 5 und 9. | ||
| + | 1,3,5,9 * * * * /pfad/zum/skript.sh | ||
| + | ;5-9 - Dieser Eintrag führt die Aufgabe von Minute 5 bis Minute 9 in jeder Stunde aus. | ||
| + | 5-9 * * * * /pfad/zum/skript.sh | ||
| + | |||
| + | = Verwaltung von Crontab = | ||
| + | |||
| + | == Eigene Crontab anzeigen == | ||
| + | |||
| + | * '''crontab -l''' | ||
| + | |||
| + | == Crontab eines anderen Benutzers anzeigen == | ||
| + | * '''crontab -lu ''Benutzer''''' | ||
| − | + | == Crontab bearbeiten == | |
| − | + | * '''crontab -e''' | |
| − | + | == Crontab löschen == | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * '''crontab -r''' | |
| − | + | == Crontab aus einer Datei lesen == | |
| − | + | * '''crontab ''/Pfad/zur/Datei''''' | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | = | + | = Cron vs. Daemon (Hintergrundprozess) = |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | * 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 sind ein Problem, 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 [[Systemd Service timers|Timer]]-Funktion, wenn man sie einstellen will. | |
| − | + | * Kann manchmal präziser sein, da Systemd die Zeit ab dem Boot zählt. | |
| − | |||
| − | |||
| − | |||
| − | + | = Aufgaben = | |
| − | |||
| − | + | * [[Aufgaben cron]] | |
Aktuelle Version vom 25. Oktober 2023, 09:25 Uhr
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
* * * * * auszuführender Befehl ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └──── Wochentag (0-7 oder Sun, Mon, Tue,etc) (Sonntag =0 oder =7) │ │ │ └────── Monat (1-12 oder Jan, Feb, etc) │ │ └──────── Tag (1-31) │ └────────── Stunde (0-23) └──────────── Minute (0-59)
z.B. wöchtenliches Backup der Heimatverzeichnisse aller Benutzer um 3 Uhr morgens:
0 3 * * 1 tar -zcf /var/backups/home.tgz /home/
Beispiele
- */2 - Dieser Eintrag führt die Aufgabe alle 2 Minuten aus.
*/2 * * * * /pfad/zum/skript.sh
- 1,3,5,9 - Dieser Eintrag führt die Aufgabe zu bestimmten Minuten aus, nämlich 1, 3, 5 und 9.
1,3,5,9 * * * * /pfad/zum/skript.sh
- 5-9 - Dieser Eintrag führt die Aufgabe von Minute 5 bis Minute 9 in jeder Stunde aus.
5-9 * * * * /pfad/zum/skript.sh
Verwaltung von Crontab
Eigene Crontab anzeigen
- crontab -l
Crontab eines anderen Benutzers anzeigen
- crontab -lu Benutzer
Crontab bearbeiten
- crontab -e
Crontab löschen
- crontab -r
Crontab aus einer Datei lesen
- crontab /Pfad/zur/Datei
Cron vs. Daemon (Hintergrundprozess)
- 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 sind ein Problem, 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.
