Cron-jobs at DESY - an abstract of the K5Cron suite

Was ist K5Cron

K5Cron ist eine kerberisierte Client-Server Lösung mit dem Ziel der periodischen Ausführung von Kommandos unter dem eigenen Namen. Der Server bietet Dienste wie die Authentifizierung und Zuweisung der nötigen AFS Rechte von Nutzern als auch die Verwaltung der Crontabs (Tabellen in Textform die Informationen über das Was und Wann eines Kommandos enthalten) und schließlich die Ausführung der geforderten Programme. Den Client (k5crontab) benutzt man um seine Crontabs zu lesen und zu editieren, als auch sich gegenüber dem Server zu authentifizieren. K5Cron nutzt Kerberos5 für den Zweck der Authentifizierung von Nutzern.

Verwenden des Clients

Name
K5crontab – maintain crontab files for individual users

Synopsis

k5crontab {-l|-e} [-s server] [-d]

Description
K5crontab ist das Programm um Crontabs zu installieren, entfernen oder anzeigen zu lassen. Die Vorraussetzung ist, daß man ein gültiges Ticket Granting Ticket (TGT) besitzt, welches normalerweise automatisch vom Login zur Verfügung gestellt wird. Um festzustellen ob man ein gültiges TGT besitzt benutzt man den "klist" Befehl. Wenn klist mit ‚no ticket file' antwortet, muß man "kinit" ausführen.
K5crontab benötigt entweder '-l' oder '-e' als Argument, um seine Crontab anzuzeigen oder zu editieren. Um zusätzliche Debug Ausgaben anzuzeigen verwendet man das ‚-d' Argument, mit ‚-s' um einen speziellen Server zu wählen (Standardvorgabe in k5crontab.conf). Die Antwort nach dem Editieren ist die Anzahl aktiver Einträge in der Crontab. Stimmt diese Anzahl nicht mit der erhofften überein, muß die Crontab erneut editiert werden. Der Server markiert falsch formatierte Einträge mit einem "#BAD" vor der entsprechenden Zeile.

Das Crontab Layout

Normalerweise beschreibt jede Zeile in der Crontab genau einen Auftrag. Ausnahmen sind:

  • Kommentare, eingeleitet durch ein # in der Zeile
  • Eine Email Adresse, eingeleitet durch ein MAILTO=, an welche die Ausgaben der Aufträge geschickt werden. Standard ist die Adresse des Nutzers.
  • Die REXEC= Zeile, die unbedingt angegeben sein muß und den Ausführungs mechanismus beschreibt (siehe unten)

Eine Zeile in der Crontab hat folgende Form:
{Minute} {Stunde} {Tag} {Monat} {Wochentag} {Ziel Host} {Kommando}

Wochentag ist eine Nummer zwischen 0 für Sonntag und 6 für Sonnabend. Ein Stern steht für ‚immer'.

Beispiel:

0 0 * * * pal ls ~/private
0 0 * * * pal-sld5 ls ~/private
0 0 * * * pal-sld4 ls ~/private

Diese Zeile würde "ls ~/private" auf pal immer Mitternacht ausführen und die Ausgaben an den Nutzer oder angegebene E-Mail Adresse schicken.
Die REXEC Zeile ist auf einen Standard gesetzt der i.d.R. nicht geändert werden sollte. Wenn man einen anderen Ausführungsmechanismus einsetzen will, gibt man das entsprechende Kommando an. Das %h wird durch den Ziel Host und %c durch das Kommando bei Ausführung ersetzt.