fcron

Aus wiki.archlinux.de

Die meisten Cron-Implementierungen wie Vixie Cron und DCron gehen von einem System aus, das ohne Unterbrechungen läuft. Das trifft allerdings nur auf Server zu - Laptops werden sehr oft heruntergefahren oder in den Suspend-Modus versetzt. Desktop-Rechner sind in der Regel nachts oder an Urlaubstagen ausgeschaltet, um Energie zu sparen. Bei solchen Einsatzszenarien bleiben Cronjobs unerledigt, wenn der Computer zur fraglichen Zeit nicht lief. Abhilfe für dieses Problem schafft die Cron-Alternative Anacron. Anacron hat aber auch Nachteile: Da das Programm nicht als Daemon läuft, muss es bei Bedarf gestartet werden, entweder manuell, durch Boot-Skripte oder durch Cron selbst. Dieses Problem kann dazu führen, dass Cron und Anacron gleichzeitig laufen, aber eine Aufgabe zwei Mal oder gar nicht erledigt wird.

Fcron ist ein Cron-Daemon, welcher die bereits bekannten Funktionen von Cron und Anacron beherrscht, aber einige nützliche Extras bietet.

Installation

Das Programm ist als fcron in community verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S fcron

Konfiguration

Zuerst bitte die Datei /etc/fcron/fcron.conf prüfen hinsichtlich der dort aufgeführten Optionen. Die mitgelieferten Standardeinstellungen dürften für die meisten Anwendungsfälle geeignet sein.

Für strengere Beschränkungen bitte die Dateien /etc/fcron/fcron.allow und /etc/fcron/fcron.deny bearbeiten.

Die Crontabs werden in der Datei fcrontab definiert. Die Syntax für die Zeiten und Befehle sind denen von Cron identisch. Für die zusätzlichen Features wird eine erweiterte Syntax verwendet, die sich von den klassischen Crontab-Dateien unterscheidet.

Für die systemweiten Jobs bitte als root ausführen:

  • Auflistung
fcrontab -l systab
  • Bearbeitung
fcrontab -e systab

Folgendes Bsp. zeigt wie Fcron alle Jobs direkt nach dem Starten des Rechners ausführt, wenn dieser zu den angegebenen Zeiten nicht in Betrieb war. Die weiteren Optionen pro Zeile sind selbsterklärend.

fcrontab -l systab
listing systab's fcrontab
&bootrun,nolog         00 * * * *  /usr/sbin/run-cron /etc/cron.hourly
&bootrun,nice(8)       05 00 * * * /usr/sbin/run-cron /etc/cron.daily
&bootrun,mail(root)    10 00 * * 1 /usr/sbin/run-cron /etc/cron.weekly
&bootrun,erroronlymail 15 00 1 * * /usr/sbin/run-cron /etc/cron.monthly

fcron.service

Damit fcron beim Booten gestartet wird, bitte systemctl enable fcron.service ausführen.

Weitere Infos