Handbücher für die Kommandozeile

Man » cron Manual online - detaillierte Online-Dokumentation für die cron-Manpage

🌍
cron - Daemon zum Ausführen geplanter Befehle (Vixie Cron)

SYNOPSIS

cron [-f] [-l] [-L loglevel] [-n fqdn] [-x debugflags]

cron [-N]

BESCHREIBUNG

cron wird direkt von systemd(1) beim Wechsel in Multibenutzer-Runlevel aufgerufen.

OPTIONEN

-f

Im Vordergrundmodus bleiben, nicht als Daemon ausführen.

-l

LSB-konforme Namen für Dateien in /etc/cron.d aktivieren. Diese Einstellung wirkt sich jedoch nicht auf die Analyse von Dateien unter /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly oder /etc/cron.monthly aus.

-n fqdn

Den FQDN in den Betreff einfügen, wenn E-Mails gesendet werden. Standardmäßig verkürzt cron den Hostnamen.

-N

Cron-Jobs jetzt, sofort, ausführen und beenden. Diese Option ist nützlich, um Tests durchzuführen.

-L loglevel

Cron mitteilen, was über Jobs protokolliert werden soll (Fehler werden unabhängig von diesem Wert protokolliert) als Summe der folgenden Werte:

1   Protokolliert den Start aller Cron-Jobs.

2   Protokolliert das Ende aller Cron-Jobs.

4   Protokolliert alle fehlgeschlagenen Jobs (Exit-Status != 0).

8   Protokolliert die Prozessnummer aller Cron-Jobs.

Standardmäßig wird der Start aller Jobs protokolliert (1). Die Protokollierung wird deaktiviert, wenn loglevel auf Null (0) gesetzt wird. Ein Wert von fünfzehn (15) wählt alle Optionen aus.

-x debugflags

Cron mitteilen, ausführlicher zu sein und Debug-Informationen auszugeben; debugflags ist die Summe dieser Werte:

1   "ext": ...

2   "sch": ...

4   "proc": ...

8   "pars": ...

16  "load": ..

32  "misc": ...

64  "test": ...

128 "bit": ...

HINWEISE

Cron durchsucht sein Spool-Verzeichnis (/var/spool/cron/crontabs/) nach Crontab-Dateien (die nach den
Konten in /etc/passwd benannt sind); die gefundenen Crontabs werden in den Speicher geladen. Beachten Sie, dass auf Crontabs in diesem Verzeichnis nicht direkt zugegriffen werden sollte - der Befehl [crontab]({filename}../../crontab)(1) sollte verwendet werden, um darauf zuzugreifen und sie zu aktualisieren.

Cron liest auch /etc/crontab, das ein etwas anderes Format hat (siehe crontab(5)). In Debian ist der Inhalt von /etc/crontab vordefiniert, um Programme unter /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly auszuführen. Diese Konfiguration ist spezifisch für Debian, siehe den Hinweis unter DEBIAN-SPEZIFISCH unten.

Zusätzlich liest Cron in Debian die Dateien im Verzeichnis /etc/cron.d. Cron behandelt die Dateien in /etc/cron.d auf die gleiche Weise wie die Datei /etc/crontab (sie folgen dem speziellen Format dieser Datei, d. h. sie enthalten das Benutzerfeld). Sie sind jedoch unabhängig von /etc/crontab: sie erben beispielsweise keine Umgebungsvariableneinstellungen davon. Diese Änderung ist spezifisch für Debian, siehe den Hinweis unter DEBIAN-SPEZIFISCH unten.

Wie /etc/crontab werden auch die Dateien im Verzeichnis /etc/cron.d auf Änderungen überwacht. Der Systemadministrator kann Cron-Jobs in /etc/cron.d/ mit Dateinamen wie "local" oder "local-foo" erstellen.

/etc/crontab und die Dateien in /etc/cron.d müssen im Besitz von root sein und dürfen nicht gruppierbar oder für andere schreibbar sein. Im Gegensatz zum Spool-Bereich dürfen die Dateien unter /etc/cron.d oder die Dateien unter /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly auch symbolische Links sein, vorausgesetzt, sowohl der symbolische Link als auch die Datei, auf die er verweist, gehören root. Die Dateien unter /etc/cron.d müssen nicht ausführbar sein, während die Dateien unter /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly ausführbar sein müssen, da sie von run-parts ausgeführt werden (siehe run-parts(8) für weitere Informationen).

Cron wird dann jede Minute aktiv und untersucht alle gespeicherten Crontabs, wobei jede Anweisung überprüft wird, um festzustellen, ob sie in der aktuellen Minute ausgeführt werden soll. Bei der Ausführung von Befehlen wird jede Ausgabe an den Besitzer des Crontabs (oder an den in der Umgebungsvariable MAILTO im Crontab angegebenen Benutzer, falls vorhanden) vom Besitzer des Crontabs (oder von der in der Umgebungsvariable MAILFROM im Crontab angegebenen E-Mail-Adresse, falls vorhanden) gesendet. Die Kindprozesse von Cron, die diese Prozesse ausführen, haben ihren Namen in Großbuchstaben geändert, was in den syslog- und ps(1)-Ausgaben zu sehen sein wird.

Zusätzlich überprüft Cron jede Minute, ob sich die Änderungszeit seines Spool-Verzeichnisses (oder die Änderungszeit der Datei /etc/crontab) geändert hat, und wenn dies der Fall ist, untersucht Cron dann die Änderungszeit aller Crontabs und lädt diejenigen neu, die sich geändert haben. Daher muss Cron nicht neu gestartet werden, wenn eine Crontab-Datei geändert wird. Beachten Sie, dass der Befehl crontab(1) die Änderungszeit des Spool-Verzeichnisses ändert, wenn ein Crontab geändert wird.

Es gibt besondere Überlegungen, wenn die Uhr um weniger als 3 Stunden geändert wird, z. B. am Anfang und Ende der Sommerzeit. Wenn die Zeit nach vorne verschoben wurde, werden alle Aufgaben, die in der übersprungenen Zeit ausgeführt worden wären, kurz nach der Änderung ausgeführt. Umgekehrt werden bei einer Rückwärtsbewegung der Zeit um weniger als 3 Stunden die Aufgaben, die in die wiederholte Zeit fallen, nicht erneut ausgeführt.

Nur Aufgaben, die zu einer bestimmten Zeit ausgeführt werden (nicht als @hourly angegeben oder mit '*' in der Stunden- oder Minutenspezifikation), sind betroffen. Aufgaben, die mit Wildcards angegeben sind, werden sofort auf der Grundlage der neuen Zeit ausgeführt.

Uhrzeitänderungen von mehr als 3 Stunden werden als Korrekturen der Uhr betrachtet, und die neue Zeit wird sofort verwendet.

Cron protokolliert seine Aktionen im Syslog-Bereich 'cron', und die Protokollierung kann mit der Standard-Syslogd(8)-Funktion gesteuert werden.

UMWELT

Wenn dies in /etc/default/cron in Debian-Systemen konfiguriert ist, kann die Cron-Daemon-Lokalisierungsumgebung mithilfe von /etc/environment oder mithilfe von /etc/default/locale verwaltet werden, wobei die Werte aus letzterem die Werte aus ersterem überschreiben. Diese Dateien werden gelesen, und sie werden verwendet, um die Umgebungsvariablen LANG, LC_ALL und LC_CTYPE einzurichten. Diese Variablen werden dann verwendet, um den Zeichensatz von E-Mails festzulegen, der standardmäßig auf 'C' gesetzt ist.


Dies wirkt sich NICHT auf die Umgebung der unter Cron ausgeführten Aufgaben aus. Weitere Informationen zur Änderung der Umgebung von Aufgaben finden Sie in crontab(5).

Der Daemon verwendet, falls vorhanden, die Definition aus /etc/localtime für die Zeitzone.

Die Umgebung kann in den Crontab-Definitionen des Benutzers neu definiert werden, aber Cron verarbeitet nur Aufgaben in einer einzigen Zeitzone.

DEBIAN-SPEZIFISCH

Debian führt einige Änderungen an Cron ein, die ursprünglich nicht im Upstream verfügbar waren. Die bedeutendsten Änderungen sind:

Unterstützung für /etc/cron.{hourly,daily,weekly,monthly} über /etc/crontab,

Unterstützung für /etc/cron.d (Drop-in-Verzeichnis für Paket-Crontabs),

PAM-Unterstützung,

SELinux-Unterstützung,

Auditlog-Unterstützung,

DST und andere zeitbezogene Änderungen/Korrekturen,

SGID crontab(1) anstelle von SUID root,

Debian-spezifische Dateispeicherorte und -befehle,

Debian-spezifische Konfiguration (/etc/default/cron),

zahlreiche weitere kleinere Funktionen und Korrekturen.

Die Unterstützung für /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly wird in Debian durch die Standardeinstellung der Datei /etc/crontab bereitgestellt (siehe das systemweite Beispiel in crontab(5)). Die Standard-systemweite Crontab-Datei enthält vier Aufgaben: Ausführung jede Stunde, jeden Tag, jede Woche und jeden Monat. Jede dieser Aufgaben führt run-parts(8) aus und übergibt jedes der Verzeichnisse als Argument. Diese Aufgaben werden deaktiviert, wenn anacron(8) installiert ist (mit Ausnahme der stündlichen Aufgabe), um Konflikte zwischen den beiden Daemons zu vermeiden.

Wie oben beschrieben, müssen die Dateien in diesen Verzeichnissen bestimmte Integritätsprüfungen bestehen, darunter die folgenden: Sie müssen ausführbar sein, dem Benutzer root gehören, dürfen nicht von der Gruppe oder anderen Benutzern beschreibbar sein und, falls es sich um symbolische Links handelt, müssen sie auf Dateien verweisen, die dem Benutzer root gehören. Darüber hinaus müssen die Dateinamen den Dateinamenanforderungen von run-parts(8) entsprechen: Sie dürfen nur aus Buchstaben und Ziffern bestehen und dürfen nur die Sonderzeichen Unterstriche ('_') und Bindestriche ('-') enthalten. Jede Datei, die diese Anforderungen nicht erfüllt, wird nicht von run-parts(8) ausgeführt. Beispielsweise werden alle Dateien, die Punkte enthalten, ignoriert. Dies geschieht, um zu verhindern, dass Cron die Dateien ausführt, die vom Debian-Paketverwaltungssystem beim Verarbeiten von Dateien in /etc/cron.d/ als Konfigurationsdateien hinterlassen werden (d. h. Dateien, die auf .dpkg-dist, .dpkg-orig, .dpkg-old und .dpkg-new enden).

Diese Funktion kann von Systemadministratoren und Paketen verwendet werden, um Aufgaben einzuschließen, die in definierten Intervallen ausgeführt werden. Von Paketen in diesen Verzeichnissen erstellte Dateien sollten nach dem Paket benannt werden, das sie bereitstellt.

Die Unterstützung für /etc/cron.d ist im Cron-Daemon selbst enthalten, der diesen Speicherort als systemweiten Crontab-Spool behandelt. Dieses Verzeichnis kann jede Datei enthalten, die Aufgaben im Format definiert, das in /etc/crontab verwendet wird, d. h. im Gegensatz zum Benutzer-Cron-Spool müssen diese Dateien den Benutzernamen angeben, unter dem die Aufgabe ausgeführt werden soll.


Die Dateien in diesem Verzeichnis müssen dem Benutzer root gehören, dürfen nicht ausführbar sein (es handelt sich um Konfigurationsdateien, ähnlich wie /etc/crontab) und müssen sich an die gleiche Namenskonvention halten, die von run-parts(8) verwendet wird: Sie dürfen ausschließlich aus Groß- und Kleinbuchstaben, Ziffern, Unterstrichen und Bindestrichen bestehen. Das bedeutet, dass sie keine Punkte enthalten dürfen. Wenn die Option -l für cron angegeben wird (diese Option kann über /etc/default/cron konfiguriert werden, siehe unten), dann müssen sie genau den LSB-Namensraum-Spezifikationen entsprechen, genau wie bei der Option --lsbsysinit in run-parts(8).

Der beabsichtigte Zweck dieser Funktion ist es, Paketen, die eine feinere Kontrolle über ihre Planung benötigen als die Verzeichnisse /etc/cron.{hourly,daily,weekly,monthly}, zu ermöglichen, eine Crontab-Datei unter /etc/cron.d hinzuzufügen. Diese Dateien sollten nach dem Paket benannt werden, das sie bereitstellt.

Die Standardkonfiguration von Cron wird durch /etc/default/cron gesteuert, die von dem init.d-Skript gelesen wird, das den Cron-Daemon startet. Diese Datei bestimmt, ob Cron die Umgebungsvariablen des Systems lesen soll, und ermöglicht es, dem Cron-Programm zusätzliche Optionen hinzuzufügen, bevor es ausgeführt wird, entweder um seine Protokollierung zu konfigurieren oder um zu definieren, wie es die Dateien unter /etc/cron.d behandeln soll.

SIEHE AUCH

crontab(1), crontab(5), run-parts(8)

AUTOREN

Paul Vixie <_> Hat diese Manpage geschrieben (1994).

Steve Greenland <_> Hat das Paket gepflegt (1996-2005).

Javier Fernández-Sanguino Peña <_> Hat das Paket gepflegt (2005-2014).

Christian Kastner <_> Hat das Paket gepflegt (2010-2016).

Georges Khaznadar <_> Hat das Paket gepflegt (2022-2024).

URHEBERRECHT

Copyright © 1994 Paul Vixie

Kostenlos weiterverbreiten, aber: Entfernen Sie meinen Namen nicht aus dem Quellcode oder der Dokumentation (beanspruchen Sie nicht meine Arbeit für sich), kennzeichnen Sie Ihre Änderungen (geben Sie mir nicht die Schuld für mögliche Fehler), ändern oder entfernen Sie diesen Hinweis nicht. Darf verkauft werden, wenn der Käufer einen erstellbaren Quellcode erhält. Es wird keine Garantie jeglicher Art, weder ausdrücklich noch stillschweigend, mit dieser Software geliefert; die Verwendung erfolgt auf eigenes Risiko, die Verantwortung für Schäden (falls vorhanden), die jemandem durch die Verwendung dieser Software entstehen, liegt vollständig beim Benutzer.

Seit 1994 wurden viele Änderungen an dieser Manpage vorgenommen, die von Debian-Entwicklern erstellt wurden, die Cron(TM) gepflegt haben; oben ist eine kurze Liste, weitere Informationen finden sich in der Datei /usr/share/doc/cron/copyright.