26.02.2014 Aufrufe

ADMIN Magazin Gestapelt - Schneller und sicherer mit RAID (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Basics<br />

Whenjobs<br />

© stillfx, 123RF<br />

Die einfachere Alternative zu Cron: Whenjobs<br />

Neue Zeitrechnung<br />

Cronjobs sind bei der Administration von Linux- <strong>und</strong> Unix-Systemen unverzichtbar.<br />

Allerdings ist die Syntax sehr beschränkt <strong>und</strong> fehleranfällig.<br />

Ein moderner Cron-Ersatz will <strong>mit</strong> diesen Schwächen aufräumen. Oliver Frommel<br />

Eines der vielen Erbstücke aus den Urzeiten<br />

von Unix (seit V7 Unix, um genau<br />

zu sein) ist der Cron-Daemon, der auch<br />

auf heutigen Linux- <strong>und</strong> BSD-Systemen<br />

regelmäßige Jobs ausführt. Zwar haben<br />

sich im Lauf der Zeit einige Alternativen<br />

entwickelt, wie etwa Fcron [1] <strong>und</strong> Anacron[2],<br />

doch am Gr<strong>und</strong>prinzip hat sich<br />

wenig geändert.<br />

Der Red-Hat-Programmierer Richard W.M.<br />

Jones hat nun unter dem Namen „Whenjobs“<br />

in Eigenregie eine Cron-Alternative<br />

entwickelt, die alte Zöpfe abschneidet. Im<br />

Wesentlichen bietet Whenjobs [3] gegenüber<br />

Cron zwei Vorteile: eine einfachere<br />

Syntax, um Jobs <strong>und</strong> Ausführungszeitpunkte<br />

festzulegen <strong>und</strong> ein System, das<br />

es ermöglicht, Abhängigkeiten zwischen<br />

Jobs zu definieren.<br />

Für Fedora 17 gibt es bereits fertige Pakete<br />

von Whenjobs, Benutzer anderer<br />

Distributionen müssen das Tool selbst<br />

übersetzen. Zur Installation können Sie<br />

Whenjobs aus dem Git-Repository auschecken.<br />

Einfacher ist es allerdings, das<br />

neueste Tarfile herunterzuladen, denn so<br />

müssen Sie sich wenigstens nicht noch<br />

<strong>mit</strong> Autoconf <strong>und</strong> Automake herumschlagen.<br />

Weil Whenjobs in der funktionalen<br />

Programmiersprache Ocaml geschrieben<br />

ist, brauchen Sie den entsprechenden<br />

Compiler <strong>und</strong> noch ein paar Pakete, die<br />

sich zum Beispiel auf Ubuntu 12.10 <strong>mit</strong><br />

dem folgenden Befehl installieren lassen:<br />

sudo apt‐get install ocaml ocaml‐findlibU<br />

libcalendar‐ocaml libcalendar‐ocaml‐dev U<br />

camlp4‐extra libocamlnet‐ocaml‐bin<br />

Der Befehl »./configure« startet die Konfiguration,<br />

die verrät, ob alle nötigen<br />

Pakete installiert sind. Im Test trat bei<br />

der darauf folgenden Übersetzung per<br />

»make« der Fehler »Error: Unbo<strong>und</strong> value<br />

Xdr.safe_add« auf, der sich dadurch<br />

beheben ließ, die erzeugten Dateien<br />

»lib/whenproto_aux.ml« <strong>und</strong> »lib/whenproto_aux.mli«<br />

zu löschen. Ein Aufruf<br />

von »make install« installiert Whenjobs<br />

anschließend systemweit.<br />

Mit der Option »‐‐help« gestartet, gibt<br />

»whenjobs« einen kurzen Hilfetext aus,<br />

der die verfügbaren Optionen <strong>und</strong> Parameter<br />

anzeigt (Abbildung 1). Mit<br />

»whenjobs ‐e« startet das Programm einen<br />

Editor, der beim ersten Start schon<br />

ein Whenjobs-File enthält, das allerdings<br />

nur aus einem Kommentar besteht (Abbildung<br />

2). Wie der Vi-Editor in der<br />

Abbildung zeigt, handelt es sich dabei<br />

um die Datei ».$HOME/whenjobs/jobs.<br />

ml«. Bei Syntax-Fehlern im Jobs-File reagiert<br />

Whenjobs recht unwirsch <strong>und</strong> gibt<br />

einfach eine Compiler-Fehlermeldung<br />

aus, speichert die Datei aber trotzdem.<br />

Statt der einen Datei dürfen auch mehrere<br />

Dateien <strong>mit</strong> der Endung ».ml« in<br />

».whenjobs« abgelegt werden, allerdings<br />

muss man sie dann von Hand editieren.<br />

Außerdem müssen die Dateinamen den<br />

Ocaml-Regeln entsprechen, dürfen also<br />

keinen Bindestrich enthalten.<br />

Die Gr<strong>und</strong>lagen der Whenjobs-Dateien<br />

sind in diesem Kommentar erklärt. Kommentare<br />

beginnen <strong>mit</strong> »(*« <strong>und</strong> enden<br />

<strong>mit</strong> »*)« – was ein dezenter Hinweis<br />

darauf ist, dass es sich bei Whenjobs-<br />

Files selbst um Ocaml-Dateien handelt<br />

– normalerweise muss man sich <strong>mit</strong> der<br />

Programmiersprache aber bei der Whenjobs-Benutzung<br />

nicht beschäftigen. Eine<br />

Zeitangabe startet <strong>mit</strong> dem Schlüsselwort<br />

»every« <strong>und</strong> endet <strong>mit</strong> einem Doppelpunkt,<br />

zum Beispiel:<br />

every 10 minutes:<br />

Die Zeichen »« abschließen.<br />

Variabel<br />

Das Beispiel in den Kommentaren illustriert<br />

einige Whenjobs-Features, zum<br />

Beispiel das Setzen von Variablen. Dazu<br />

bietet das Tool die Option »‐‐set«, die sich<br />

etwa durch die Angabe des Variablentyps<br />

<strong>mit</strong> »‐‐type« ergänzen lässt. Der folgende<br />

Code führt also erst das Stat-Kommando<br />

aus <strong>und</strong> weist dessen Ergebnis der Shell-<br />

Variablen »free« zu. Die zweite Zeile<br />

liest diese Variable aus <strong>und</strong> weist sie der<br />

Whenjobs-Variablen »free_space« vom<br />

Typ Integer zu, die später anderen Jobs<br />

zur Verfügung steht.<br />

92 Ausgabe 06-2012 Admin www.admin-magazin.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!