Aus LinuxUser 01/2001

Crontabellen per Mausklick

Auftragsersteller vom Dienst

So nützlich der Crondämon ist, um den Rechner zu festgelegten Zeiten den einen oder anderen Auftrag ausführen zu lassen – das Format, in dem er sich bitten lässt, ist einigermaßen gewöhnungsbedürftig. Hier helfen grafische Crontab-Erstellungsprogramme.

Ob man seine Festplatte regelmäßig von den Überresten ungewollt sterbender Programme (den core-Dateien) säubern, sich rechtzeitig an den Geburtstag der Liebsten erinnern oder morgens von der MP3-Sammlung wecken lassen will – kein Problem, wenn der Rechner so oder so fast rund um die Uhr läuft. Einfach einen Auftrag für den Crondämon verfasst, und schon muss man sich um nichts mehr selbst kümmern.

Der Haken dabei: Zwar gibt es ein Programm namens crontab, das den Lieblingseditor aufruft und mit einer groben Syntaxprüfung verhindert, dass allzu großer Unfug den Weg ins System findet [1,2], doch schreiben muss man die Crontabelle mit ihrem recht anspruchsvollen Aufbau letztlich doch selbst.

Auf Herz und Nieren

Allerdings gehört das Erstellen von Crontab-Einträgen nicht gerade zu den Dingen, bei denen man automatisch in Form bleibt, weil man sie täglich mindestens zweimal tut. Da schleicht sich ein Fehlerchen in der Zeitangabe oder bei der Syntax nur all zu leicht ein. Und manche/n Einsteiger/in mögen die syntaktischen Hürden derart abschrecken, dass er oder sie gänzlichst auf dieses nützliche Werkzeug verzichtet.

Grafische Ersatzprogramme für crontab drängen sich als Ausweg aus dem Dilemma förmlich auf. Einige dieser Helferlein nehmen wir im Folgenden unter die Lupe.

Unser Testparcours ist nicht ganz anspruchslos: Mit einem recht komplexen Aufruf prüfen wir, ob das Programm mit langen Kommandozeilen zurecht kommt. (Die unter Linux gängigen Crondämonen beachten meist bis zu 1024 Zeichen pro Crontabelleneintrag.) Dazu bauen wir aus den beiden Kommandozeilentools mix (ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/mix-1.0.tar.gz) und mpg123 einen Wecker zusammen, der im Verzeichnis /music nach MP3-Dateien sucht, diese dienstags bis freitags um 7.25 Uhr mit halber Lautstärke (vb=50) in zufälliger Reihenfolge (-z) abspielt und sämtliche Ausgaben von Standardausgabe und Standardfehlerausgabe ins Datennirvana /dev/null schickt.

Vier Minuten später sind wir hoffentlich aufgestanden und wollen deshalb das nervige Gedudel um 7.29 Uhr mit killall automatisch ausschalten lassen. Hiermit testen wir, ob das Programm tatsächlich das gesamte Zeitspektrum des Crondämons („jede Minute“) ausnutzt. Für die, die morgens immer schwer aus den Federn kommen, springt der Wecker von 7.35 Uhr bis 7.39 Uhr noch ein zweites Mal an.

Anschließend lassen wir uns täglich um 8 Uhr die Morgenzeitung (netscape http://www.sueddeutsche.de/ &) servieren. Idealerweise weist uns das Programm darauf hin, dass wir hiermit ein Problem haben werden, wenn wir nicht eingeloggt sind und kein X-Server unter unserem Namen läuft.

Als vierte Aufgabe soll ein selbstgeschriebenes Skript aus dem Unterverzeichnis bin des eigenen Homeverzeichnisses täglich zwischen 0 und 23 Uhr aller 6 Stunden ein paar Aufräumarbeiten ausführen. Wir möchten uns das Angeben des genauen Pfads zu aufraeumen beim Eintippen des Kommandos sparen und setzen daher die Crontab-PATH-Variable zuvor auf $HOME/bin. Damit testen wir, ob das Frontend Variablen setzen kann und zwar nicht nur global einmal am Anfang der Crontabelle, sondern auch vor einem neuen Eintrag.

Allerdings werten Linux-Crondämonen in der Regel nur einige spezielle Variablen aus. Ein wirklich gutes GUI-Crontab-Programm lässt hier folglich nicht jede beliebige Variable setzen.

Listing 1 zeigt die von Hand geschriebene passende Crontab. Diese sollten alle Programme auch einlesen können. Hier liegt das Augenmerk speziell auf mit und / realisierten Zeiträumen (0-23/6). Diese werden von den unter Linux gebräuchlichen Crondämonen erkannt, nicht jedoch von Cron-Implementationen anderer Unixbetriebssysteme. Ein weiteres Testkriterium beim Einlesen der handgeschriebenen Crontab liegt auf der richtigen Wiedergabe der Kommentare.

Zu guter Letzt prüfen wir noch, wie das Programm sich bei unmöglichen Tagesangaben wie einem 30. Februar oder einem 31. November verhält. Das und eine Plausibilitätsprüfung der auszuführenden Programme sind zugegebenerweise Anforderungen, die auch das Kommandozeilen-crontab-Programm nicht erfüllt. Da „Klickprogramme“ gerade „unbedarfteren“ Anwender/innen den Zugang erleichtern wollen, müssen sie sich jedoch an härteren Kriterien messen lassen.

Tabelle 1 gibt die wichtigsten Kriterien und Informationen zu jedem Einzelprogramm wieder. Zum Vergleich ist auch das standardmäßig auf fast jedem Linuxsystem installierte crontab-Kommandozeilentool mit aufgeführt.

Listing 1

Beispiel für eine persönliche Crontabelle

 # DO NOT EDIT THIS FILE - edit the master and reinstall.
 # (/tmp/crontab.1514 installed on Wed Jan 6 21:44:50 1999)
 # (Cron version – $Id: cron2_red1.html,v 1.4 1999/03/06 22:44:46 lm Exp $)
 # Wecker
 25,35 7 * * Tue-Fri (/usr/local/bin/mix vb=50; /usr/bin/mpg123 -b 2048 -z `find /music -name \*.mp3`) > /dev/null 2>&1
 # nach 12 Minuten Gedudel Wecker ausschalten
 29,39 7 * * tue-fri killall mpg123
 # Die Morgenzeitung
 0 8 * * * netscape http://www.sueddeutsche.de/ &
 # Ab jetzt werden nur noch Programme in $HOME/bin ohne Pfadangabe
 # gefunden
 PATH=$HOME/bin
 # Aufraeumskript
 0 0-23/6 * * * aufraeumen

Kcron

Dass eine Rundum-Sorglos-Desktop-Umgebung wie KDE ein Crontab-Frontend mitbringt, steht beinahe zu erwarten. Tatsächlich ist dem erst seit KDE 2.0 wirklich so: kcron aus dem kdeadmin-Paket oder auch als einzelnes rpm-Paket installiert, findet sich im K-Menü unter System–>Aufgabenplaner Kcron oder lässt sich mit dem Befehl kcron & aufrufen (Abbildung 1).

LinuxUser 01/2001 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: