Crontab benutzen

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der TIPPs & Tricks Sammlung.
Terminals / Shells X Portage System Dateisysteme Kernel Netzwerk Sonstiges alphabetischer Tipp Index


Wie unter [1] beschrieben ist, gibt es zumindest 3 Varianten von cron: "vixie cron", "dillon's cron" und fcron.

Da sich diese (z.B. die ersten beiden) unterscheiden, kann ziemliche Verwirrung entstehen. Wichtig ist bei dillon eine Änderung in der default root "crontab" Datei: Hier muss

 crontab /etc/crontab

aktiviert werden.

Weiterhin ist eventuell die Beispiel-default-root "crontab" nicht für dillon ausgelegt, falls diese wie bei vixie Zuweisungen von ENVIRONMENT-Variablen und eine Spalte für den zu verwendenden Benutzer (meist steht da "root") enthaelt, so wird die Verwendung dieser Datei mit dillon keine guten Ergebnisse liefern!


Inhaltsverzeichnis

[Bearbeiten] Was ist die crontab ?

Die crontab sorgt dafür, dass Programme in Unix (Linux) in regelmässigen Abständen automatisch ausgeführt werden. Z.B. möchtest du regelmäßig deine Datenbank sichern. Dann macht man es mit crontab. In unserem Fall führen zwei Wege ins gelobte Land:

[Bearbeiten] Möglichkeit 1

Wenn du root bist, kannst du mit dem Textfile /etc/crontab arbeiten. Jede Zeile dort ist zuständig für eine Aufgabe.

1 2 * * * root /bin/ls > /dev/null

So könnte es aussehen. Kommen wir zum Aufbau der Zeile. Die ersten fünf mit Leerzeichen getrennten Felder geben an, wann die Aufgabe erledigt werden soll.

Von links nach rechts ist das: (erlaubte Werte in der Klammer)

Minute(0-59) Stunde(0-23) Tag(0-31) Monat(0-12) Wochentag(0-7)


Beim Wochentag ist die 0 und die 7 = Sonntag, 1 = Montag usw. Ein * hat die Bedeutung von immer.

In unserem Beispiel bedeutet der Eintrag also: Jeden Tag um 02:01 Uhr mache unseren Job.

Wenn wir nun möchten, dass unser Job nur montags bis freitags seine Runde macht, dann geht das so:

1 2 * * 1,2,3,4,5

So, da aber Unix-Leute schreibfaul sind, gibt es natürlich eine Abkürzung. *g* Man kann auch schreiben:

1 2 * * 1-5

Man kann also einen Bereich angeben.

Ich hätte aber gern was alle 5 Minuten... auch das geht:

*/5 * * * *

Mit "/wert" gebe ich eine Schrittweite an. Und natürlich kann ich Bereich und Schrittweite kombinieren...

10-20/5 * * * * => jede Stunde von 10 nach bis 20 nach alle 5 Minuten

Die nächsten zwei Felder in der Zeile sind einfach: Nach der Festlegung, wann es zu passieren hat, gebe ich noch den User an, der ausführt. Dann kommt nur noch Befehlszeile, wie man es von der Shell-Eingabe her kennt. Achtung, man muss alle Angaben mit kompletten Pfadangaben machen! Crontab findet nicht von alleine!

[Bearbeiten] Möglichkeit 2

Der zweite Weg ist über den Befehl crontab -e. Damit wird die Crontab eines Users editiert bzw. erstellt. Beim Aufruf wird der Default-Editor geöffnet und wartet auf unsere Eingabe; der Aufbau der Zeile ist wie oben ...

crontab -l => listet auf
crontab -r => löscht alle Einträge

orginal Info: man 5 crontab

Anmerkung: NIEMALS * * * * * als Zeitpunkt eingeben, es sei denn du bist Sadist und quälst gerne deinen PC!

[Bearbeiten] Probleme?

Can't run a crontab as regular user

'Persönliche Werkzeuge
Andere Sprachen