Linux-Magazin-Logo Die Zeitschrift für Linux-Professionals

Aus dem Alltag eines Sysadmin: Fcron

Zeitarbeit

Charly Kühnast

Cron arbeitet zwar zuverlässig und auf Termin die ihm übertragenen Jobs ab. Wie eine Schweizer Uhr zeigt sich das bereits historische Tool jedoch von äußeren Einflüssen gänzlich unbeeindruckt - und verschenkt damit auch Möglichkeiten, den auszuführenden Job genauer zu bestimmen. Doch Abhilfe naht: Fcron.

Inhalt

In den ersten beiden Artikeln der Sysadmin-Rubrik geht's um Ausfallsicherheit.

60 | Heartbeat und DRBD
Für ein HA-Cluster reichen normale Hardware und Open-Source-Software. Eine Anleitung.

68 | LAN ausfallsicher
Der Bonding-Kerneltreiber wechselt die Netzwerk-Schnittstelle eines Servers, wenn ein Switch ausfällt.

72 | Admin-Automat
Der findige Admin lässt seine Benutzer Detailänderungen per Webanwendung selbst erledigen.

76 | Server ohne Shell
FTP ist unsicher und SFTP verschenkt sehr großzügig Login-Shells an alle. Die Suche nach einer Alternative.

80 | Admin-Workshop
Wechselnde IP-Adressen stehen dem Betrieb eines Servers entgegen, der nur per DSL am Internet hängt.

82 | Lotus Domino
Das IBM-Produkt hat sich von der reinen Groupware zur Application-Plattform gemausert. Ein Überblick.

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

Bitte recht freundlich!

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]

Der Autor

Charly Kühnast administriert Unix-Betriebssysteme im Rechenzentrum Niederrhein in Moers. Zu seinen Aufgaben gehören die Sicherheit und Verfügbarkeit der Firewalls und der DMZ (demilitarisierte Zone). In seiner Freizeit lernt er Japanisch, um endlich die Bedienungsanleitung seiner Mikrowelle lesen zu können.