CRON(8) System-Administration CRON(8) BEZEICHNUNG crond - Daemon zur geplanten Ausfuhrung von Befehlen UBERSICHT crond [-c | -h | -i | -n | -p | -P | -s | -m] crond -x [ext,sch,proc,pars,load,misc,test,bit] crond -V BESCHREIBUNG Wenn klassische Sysvinit-Skripte verwendet werden, wird cron uber /etc/rc.d/init.d oder /etc/init.d gestartet. Bei aktiviertem Systemd wird die Unit-Datei in /lib/systemd/system/crond.service installiert und der Daemon uber den Befehl systemctl start crond.service gestartet. Der Befehl kehrt sofort zuruck, daher besteht keine Notwendigkeit, ihn mit dem Parameter & zu starten. Cron sucht in /var/spool/cron nach Crontab-Dateien (>>Cron-Tabellen<<), die nach den Benutzerkonten in /etc/passwd benannt sind. Die gefundenen Crontabs werden in den Speicher geladen. Cron sucht auch nach /etc/anacrontab und allen Dateien im Verzeichnis /etc/cron.d, die ein anderes Format haben (siehe crontab(5)). Cron untersucht alle gespeicherten Crontabs und uberpruft jeden Auftrag, um zu sehen, ob er in der aktuellen Minute ausgefuhrt werden muss. Beim Ausfuhren von Befehlen werden alle Ausgaben per lokaler E-Mail an den Besitzer der Crontab gesendet (oder an den in der Umgebungsvariable MAILTO in der Crontab angegebenen Benutzer, sofern diese Variable existiert). Mit der Option -s kann die Ausgabe jedes Auftrags auch an das Systemprotokoll gesendet werden. Es gibt zwei Moglichkeiten zur Uberprufung auf Anderungen in Crontabs. Die erste Methode uberpruft die Anderungszeit einer Datei. Die zweite Methode basiert auf der Inotify-Unterstutzung. Die Benutzung von Inotify wird in das Protokoll in /var/log/cron geschrieben, nachdem der Daemon gestartet wurde. Die Inotify-Unterstutzung pruft auf Anderungen in allen Crontabs und greift nur auf die Festplatte zu, wenn eine Anderung erkannt wird. Wenn Sie die auf der Anderungszeit basierende Option verwenden, pruft cron die Anderungszeitstempel der Crontabs jede Minute auf Anderungen und ladt die Crontabs neu, die sich geandert haben. Es besteht keine Notwendigkeit, cron neu zu starten, nachdem einige der Crontabs geandert wurden. Die auf der Anderungszeit basierende Methode wird auch dann angewendet, wenn Inotify nicht initialisiert werden konnte. Cron pruft folgende Dateien und Verzeichnisse: /etc/crontab Die Crontab des Systems. Heutzutage ist diese Datei standardmassig leer. Ursprunglich war sie zur taglichen, wochentlichen oder monatlichen Ausfuhrung von Auftragen gedacht. Standardmassig werden diese Auftrage nun durch anacron ausgefuhrt, welches die Konfigurationsdatei /etc/anacrontab liest. In anacrontab(5) finden Sie weitere Details. /etc/cron.d/ Verzeichnis, das fur verschiedene Benutzer gespeicherte System-Cron-Auftrage enthalt. /var/spool/cron Verzeichnis, das mit dem Befehl crontab von Benutzern erstellte Crontabs enthalt. Beachten Sie, dass der Befehl crontab(1) die Anderungszeit des Spool-Verzeichnisses immer aktualisiert, wenn es eine Crontab andert. Sommer-/Winterzeitumstellung und andere Zeitanderungen Anderungen der lokalen Zeit von weniger als drei Stunden, wie jene, die durch Sommer-/Winterzeitumstellung hervorgerufen werden, werden auf besondere Weise behandelt. Dies bezieht sich nur auf Auftrage, die zu einem bestimmten Zeitpunkt ausgefuhrt werden sollen, sowie auf solche mit einer Granularitat von mehr als einer Stunde. Auftrage, die haufiger ausgefuhrt werden, werden normal behandelt. Wenn die Zeit um eine Stunde vorgestellt wurde, werden die Auftrage, die im ubersprungenen Zeitraum ausgefuhrt werden wurden, sofort ausgefuhrt. Umgekehrt wird beim Zuruckstellen der Zeit verhindert, dass der gleiche Auftrag zweimal ausgefuhrt wird. Anderungen der Zeit von mehr als drei Stunden werden als Korrekturen der Uhrzeit oder der Zeitzone betrachtet und die neue Zeit sofort angewendet. Es ist moglich, fur Crontabs verschiedene Zeitzonen zu verwenden. In crontab(5) finden Sie weitere Informationen hierzu. PAM-Zugriffssteuerung Cron unterstutzt die Zugriffssteuerung uber PAM, sofern auf dem System PAM installiert ist. Weitere Informationen finden Sie in pam(8). Eine PAM-Konfigurationsdatei fur crond ist in /etc/pam.d/crond installiert. Der Daemon ladt die PAM-Umgebung aus dem Modul pam_env. Dies kann durch Definieren spezifischer Einstellungen in der entsprechenden Crontab-Datei ausser Kraft gesetzt werden. OPTIONEN -h gibt eine Hilfemeldung aus und beendet das Programm. -i deaktiviert die Inotify-Unterstutzung. -m ermoglicht die Angabe des Shell-Befehls, der zum Senden von Cron-E-Mails anstelle von sendmail(8) verwendet werden soll. Dieser Befehl muss eine vollstandig formatierte E-Mail-Nachricht (einschliesslich Kopfzeilen) uber die Standardeingabe akzeptieren und diese als E-Mail-Nachricht an die in den Kopfzeilen der E-Mail angegebenen Empfanger versenden. Die Angabe der Zeichenkette off (das heisst, crond -m off) deaktiviert das Versenden von E-Mails. -n weist den Daemon an, im Vordergrund zu bleiben. Dies kann nutzlich sein, wenn Sie ihn ausserhalb von >>init<< starten. Mit dieser Option ist die Anpassung der PAM-Einstellung notwendig. /etc/pam.d/crond darf das Modul pam_loginuid.so nicht aktivieren. -f ist gleichbedeutend mit -n, konsistent mit anderen Implementierungen von crond. -p erlaubt cron, alle durch Benutzer angelegte Crontabs zu akzeptieren. -P setzt die Umgebungsvariable PATH nicht. Diese wird stattdessen von der Umgebung ererbt. -c aktiviert Clustering-Unterstutzung, wie nachfolgend beschrieben. -s weist cron an, die Ausgabe des Auftrags mittels syslog(3) an das Systemprotokoll zu senden. Dies ist nutzlich, wenn Ihr System nicht uber ein installiertes sendmail(8) verfugt oder das Versenden von E-Mails deaktiviert ist. -x erlaubt das Setzen von Debug-Schaltern. -V zeigt die Versionsnummer an und beendet das Programm. SIGNALE Wenn SIGHUP empfangen wird, schliesst der cron-Daemon seine Protokolldatei und offnet diese dann neu. Dies erweist sich in Skripten als nutzlich, die Dateien rotieren und altern. Naturlich ist das irrelevant, wenn cron zur Nutzung mit syslog(3) erstellt wurde. UNTERSTUTZUNG FUR CLUSTERING In dieser Version von cron ist es moglich, ein uber das Netzwerk eingehangtes /var/spool/cron uber einen Rechner-Cluster zu verwenden und anzugeben, dass niemals mehrere Rechner gleichzeitig die Crontab-Auftrage in diesem Verzeichnis ausfuhren sollen. Dazu starten Sie cron mit der Option -c, wobei die Datei /var/spool/cron/.cron.hostname nur eine einzige Zeile enthalt, in der der Name eines ausgewahlten Rechners im Cluster angegeben ist, der die Auftrage ausfuhren soll. Falls diese Datei nicht existiert oder der darin angegebene Rechnername nicht dem entspricht, was gethostname(2) zuruckliefert, dann werden alle Crontab-Dateien in diesem Verzeichnis ignoriert. Dies ist bei den in der Datei /etc/crontab oder in den im Verzeichnis /etc/cron.d angegebenen Dateien wirkungslos. Diese Dateien werden immer ausgefuhrt und als rechnerspezifisch aufgefasst. Anstatt /var/spool/cron/.cron.hostname direkt zu bearbeiten, verwenden Sie die Option -n von crontab(1), um den Rechner anzugeben. Sie sollten sicherstellen, dass die Uhren aller Rechner in einem Cluster und die des Dateiservers, von welchem das gemeinsame Crontab-Verzeichnis eingehangt wird, moglichst exakt synchronisiert sind, zum Beispiel mittels ntpd(8). Anderenfalls werden die Ergebnisse kaum vorhersagbar sein. Durch die Nutzung der Cluster-Freigabe wird die Unterstutzung fur Inotify automatisch deaktiviert, da Inotify mit uber das Netzwerk bereitgestellten gemeinsam genutzten Dateisystemen nicht umgehen kann. WARNUNGEN Alle crontab-Dateien mussen regulare Dateien oder Symlinks sein, die auf regulare Dateien zeigen. Sie durfen nur vom Eigentumer ausfuhr- oder schreibbar sein. Diese Voraussetzung kann durch die Option -p in der Befehlszeile von crond uberschrieben werden. Falls die Inotify-Unterstutzung verwendet wird, wird der Cron-Daemon nicht automatisch uber Anderungen in den per Symlink eingebundenen Crontabs benachrichtigt. Der Cron-Daemon muss ein SIGHUP-Signal empfangen, um die Crontabs neu zu laden. Dies ist eine Einschrankung der Inotify-API. Wenn Sendmail nicht installiert ist, werden keine E-Mails versendet, sondern die Ausgabe in das Systemprotokoll geschrieben. SIEHE AUCH crontab(1), crontab(5), inotify(7), pam(8) AUTOR Paul Vixie Marcela Maslanova Colin Dean Tomas Mraz UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . cronie 26. September 2013 CRON(8)