Home / LinuxUser / 2000 / 12 / Jobs mit Cron abarbeiten

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Diener auf die Minute

Jobs mit Cron abarbeiten

Wie hält er's mit den Usern, sprich?

Während die Systemadministratorin in der systemweiten /etc/crontab peinlich selbst darauf achten muss, den Syntax-Ansprüchen des Cron-Daemons zu genügen, hat sie es leichter, wenn sie roots private Cron-Tabelle ändern will. Benutzerspezifische Wunschlisten an den Cron-Daemon werden – wie eingangs erwähnt – mit dem Programm crontab erstellt und gewartet.

Außer root hat kein User überhaupt die Möglichkeit, seine private Cron-Tabelle per Hand zu bearbeiten. Da der Cron-Daemon jede Minute angerückt kommt, um nach seinen Aufgaben zu sehen, vermeidet man so, dass ein unbedarfter Benutzer eine halbfertige oder syntaktisch vollkommen falsche Liste erstellt.

Tabelle 4: Wo stecken die persönlichen Cron-Tabellen?

Auch beim Verzeichnis, in dem die privaten Crontab-Dateien der User zu finden sind, herrscht fröhliche Uneinigheit unter den Distributoren. Immerhin können sich außer SuSE fast alle ein "Unterhalb von /var/spool/cron" abringen. Ein paar Stichproben…

Debian 1.3.1 ff. /var/spool/cron/crontabs/
Red Hat 4.2 /var/spool/cron/
Red Hat 5.0 /var/spool/cron/crontabs/
Red Hat 6.2 /var/spool/cron/
Caldera OpenLinux 1.2 ff. /var/spool/cron/
SuSE 4.4 ff. /var/cron/tabs/
Slackware 3.4 /var/spool/cron/crontabs/

Stattdessen legt crontab eine Kopie der alten Crontab an, die die Benutzerin im von crontab automatisch aufgerufenen Editor verändern darf. Erst wenn sie den Editor endgültig schließt, führt crontab ein paar Syntaxprüfungen aus, bittet die Benutzerin ggf. um Korrektur und ersetzt zum Schluss die alte Cron-Tabelle durch die geänderte.

So hilfreich diese Kontrollinstanz ist – Wunder sollte man nicht erwarten. Zum einen überprüft crontab wirklich nur, ob die richtige Anzahl Spalten vorhanden sind (versehentlich eingefügte Leerzeichen u. a. machen eine neue Spalte auf) und ob die Angaben in den Zeitspalten plausibel sind. Einen Eintrag wie

88 4 * * * asdadad

(Achtung: Da private Crontabs immer spezifisch für einen User sind, fehlt die Spalte mit dem Benutzernamen!) mahnt crontab beim Abspeichern zwar mit dem Hinweis auf die falsche Minute ("bad minute") an:

crontab: installing new crontab
"/tmp/crontab.XXXXVYM64K":0: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit?

Doch sobald man mit einem y wie "yes" reumütig zum Editor zurück kehrt und aus der 88 eine 8 macht, wird crontab die alte Crontabelle klaglos mit der neuen ersetzen, so wenig ein Kommando asdadad auch existieren mag.

Solange crontab jedoch syntaktische Fehler ausmachen kann, lässt es sich nicht so ohne weiteres überlisten. Hätten wir auf die Frage "Möchten Sie Ihre Änderungen noch einmal überarbeiten?" mit einem n geantwortet, wäre die temporäre Datei /tmp/crontab.XXXXVYM64K zwar erhalten geblieben, die Änderungen jedoch nicht in die echte Crontabelle übertragen worden.

Der Widerspenstigen Zähmung

Wie man mit man crontab erfährt, könnte man diese Datei mit einem Editor seiner Wahl in Ruhe korrigieren und mit

crontab /tmp/crontab.XXXXVYM64K

doch noch zu Ehren kommen lassen. Genausogut kann man jede andere vorgefertigte Datei zu installieren versuchen. Auch wenn sich diese Vorgehensweise sicher dazu eignet, eine sorgfältig erstellte Crontabelle nach einer Neuinstallation o. ä. wieder einzuspielen, wird man doch in der Regel zu

crontab -e

greifen, um seine private Cron-Tabelle zu editieren oder neu anzulegen. Hier kann es nicht schaden, die Grundlagen des vi-Editors zu kennen (mit der Tastenfolge ESC : q ! kommt man ohne Speichern wieder raus), denn der ist in der Regel voreingestellt.

Wer diesen nicht mag, kann mit einer der (Shell-, nicht Cron-) Umgebungsvariablen EDITOR oder VISUAL seinen Lieblingseditor festlegen. Arbeitet man unter KDE, gibt man z. B. die Befehlsfolge

export EDITOR=kedit
crontab -e

in einem Terminal-Fenster an. Nach dem Ausloggen oder in der Regel auch in einem anderen X-Terminal ist der neue Wert von EDITOR dann natürlich verschwunden.

Wer ihn dauerhaft haben möchte, schreibt die export-Zeile z. B. in die Datei .bashrc oder .bash_profile im Home-Verzeichnis. Für X-Terminals, die über einen Menüpunkt oder ein Icon aufgerufen werden, kann hier ein wenig Experimentieren erforderlich sein.

Allerdings sollte man beim dauerhaften Ändern dieser Variablen vorsichtig sein: Auch andere Programme richten sich danach, und wer kommt schon gleich auf die Idee, dass ein in der Textkonsole gestartetes Tool deshalb aufgibt, weil sich ein grafischer Editor nun mal nur unter X starten lässt? Für den Notfall sei hier auch das Gegengift erwähnt:

unset EDITOR

bringt die Variable wieder in den (nicht gesetzten) Urzustand, und export EDITOR=mcedit setzt stattdessen den vom Midnight Commander mc benutzten Editor, der ohne X auskommt.

So nützlich crontab also ist: Völlig unbedarftes Herangehen ist nicht unbedingt Erfolg versprechend. Eine gewisse Vereinfachung versprechen grafische Crontab-Editoren, denen wir uns im nächsten (Erscheinungs-)Jahr widmen. Wer trotz allem an seiner Crontabelle verzweifelt: Ein

crontab -r

(wie "remove") löscht sämtliche Einträge unweigerlich.

Glossar

man 5

Wie in der Rubrik "Zu Befehl" im LinuxUser 02/2000 ausführlich erklärt, sind die Manpages nach Anwendungsgebiet in sogenannte Sektionen gegliedert. Mit crontab z. B. können zwei verschiedene Dinge gemeint sein: das Programm oder die Datei. Informationen zu ersterem findet man in Sektion 1 mit dem Befehl man 1 crontab oder kurz man crontab. Die Manpage zur Datei namens crontab hingegen ist in Sektion 5, also mit man 5 crontab, zu finden. In welchen Sektionen man etwas über crontab findet, erfährt man mit man -f crontab.

Shellskripte

Die Shell, ihres Zeichens Vermittlerin zwischen der Benutzerin an der Kommandozeile und dem Betriebssystemkern, bietet – je nachdem, welches Programm man dafür verwendet – oft weitreichende Manipulationsmöglichkeiten. Dazu gehört bei Kommandozeileninterpretern wie der unter Linux meist standardmäßig eingestellten Bash eine eingebaute Programmiersprache. Damit erstellte Programme heißen Skripte, da sie nicht erst mit einem extra Compiler in ein ausführbares Programm übersetzt werden müssen, sondern direkt von der Shell interpretiert werden.

Postings

Ein Posting ist ein Beitrag in einer News-Gruppe oder auf einer Mailingliste.

System-Log

Der Kernel und wichtige Systemprogramme lassen ihre Aktivitäten und Fehlerfälle vom "Kernel-Log-Dämon" klogd bzw. vom "System-Log-Daemon" syslogd mitprotokollieren. Aus diesen Logfiles (meist unter /var/log/ zu finden) kann die Systemadministratorin bei Problemen Rückschlüsse ziehen.

.

<B Der Punkt ist eine Abkürzung für das aktuelle Verzeichnis. Dies ist gerade beim Cron-Daemon mit seiner ungeschränkten Verfügungsgewalt eine recht gefährliche Pfadangabe.

Infos

[1] Artikel zu Cron aus dem Linux-Magazin 08/1998, S. 63 http://www.linux-magazin.de/ausgabe/1998/08/Cron/cron.html

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...