|
|
Aus dem Alltag eines Sysadmin: FcronZeitarbeitCharly Kühnast |
Inhalt |
In den ersten beiden Artikeln der Sysadmin-Rubrik geht's um Ausfallsicherheit.
60 | Heartbeat und DRBD
68 | LAN ausfallsicher
72 | Admin-Automat
76 | Server ohne Shell
80 | Admin-Workshop
82 | Lotus Domino |
Routinedinge lasse ich auf Termin von Cron erledigen. Das ist so lange praktisch, bis irgendwelche Jobs länger brauchen als gedacht und sich mit anderen überlagern. Ich wünsche mir daher ein Werkzeug, das solche Situationen erkennt - Fcron[1] erfüllt mir den Traum. Erklärtes Ziel des Fcron-Erfinders Thibault Godouet ist es, den guten alten Vixie Cron überflüssig zu machen. Um das zu erreichen, hat er das Tool mit allerlei zusätzlicher Funktionalität ausgestattet. Die Installation ist schmerzarm: Nach dem Auspacken der etwa 142 KByte großen Sourcen reicht:
./configure && make && make install
Die Installationsroutine bindet das Programm auf Wunsch gleich in die Startup-Skripte ein. In Analogie zu Cron steuert man auch Fcron über eine Fcrontab, die mit »fcrontab -e« editierbar ist. An diesem Punkt enden aber die Gemeinsamkeiten von Alt und Neu bereits: Aufbau und Syntax der Fcrontab lehnen sich zwar an das Vorbild an, sind aber nicht identisch.
Zum lockeren Einstieg bringe ich Fcron zu etwas, was Cron kann: Es soll das Kommando »/bin/date« jeweils um fünf Minuten nach jeder vollen Stunden ausführen. Der Eintrag in der »fcrontab« sieht so aus:
5 0 * * * /bin/date
Neu ist, dass Fcron Kommandos in Abhängigkeit von der Uptime des Rechners anstoßen kann. Ich will darum »/bin /date« alle zweieinhalb Stunden, beginnend mit dem Hochfahren des Rechners, ausführen lassen:
@ 2h30m /bin/date
Jobs, die den Rechner stark auslasten, kann ich einen Nice-Wert mitgeben:
&nice(10) 0 1 * * * /usr/local/shellscripts/MyBackupScript.sh
Soll ein Kommando zu jeder vollen Stunde zwischen 14 und 22 Uhr laufen, genügt folgende Zeile:
0 14-22 * * * /bin/date
Soll Date zu jeder zweiten (!) vollen Stunde starten, lautet der Eintrag:
0 14-22/2 * * * /bin/date
Auch Ausnahmen sind definierbar: Soll das Kommando nur an Werktagen, nicht aber an Sonntagen wirken, reicht als Änderung:
0 14-22/2 * * *~0 /bin/date
Elemente, die nach der Tilde stehen, behandelt Fcron also als Ausnahmen.
Als besonderes Schmankerl berücksichtigt das Programm auch die aktuelle Systemlast. Die folgende Zeile startet das Kommando »/bin/heavyjob/« einmal pro Stunde - aber nur, wenn die Systemlast (Loadavg) im Fünf-Minuten-Mittel nicht höher als 1,5 ist:
@lavg5(1.5) 1h /bin/heavyjob
Die gelungene Manpage installiert sich zusammen mit Fcron beziehungsweise Fcrontab. Bei mir jedenfalls hat der gute alte Cron nun keinen Job mehr. (jk)
Infos |
[1] Fcron: [http://fcron.free.fr] |