Seiten

crontab

Was ist eine crontab ? Die crontab sorgt dafür das Programme in Unix(Linux)
in regelmässigen Abständen automatisch ausgeführt werden.
Z.B. möchtes du regelmässig deine Datenbank sichern - dann macht man es mit crontab.
Grundkenntnisse in Unix und vi sollten vorhanden sein ...

In unserem Fall führen zwei Wege ins gelobte Land:

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 5 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 unserm Beispiel bedeutet der Eintrag also:
Jeden Tag um 02:01 Uhr mache unseren Job.
Wenn wir nun möchten das 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 ein Schreibfaules Gesinde ist, gibt es natürlich eine Abkürzung *g* - man kann auch schreiben :
1 2 * * 1-5
man kann also einen Bereich angeben.
Ich h&aauml;tte aber gern was alle 5 Minuten ...auch das geht
*/5 * * * *
mit /wert gebe ich eine Schrittweite an. Und natürlich kan ich Bereich und Schrittweite kombinieren ...
10-20/5 * * * * = jede Stunde von 10 nach bis 20 nach alle 5 Minuten
die nächten 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 mann muss alle Angaben mit kompletten Pfadangaben machen! Crontab findet nix von allein!
Der Zweite Weg ist über den Befehl crontab -e Der macht ein Editor auf 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
Letze Anmerkung: NIE * * * * * als Zeitpunkt eingeben, es sei denn du bist Sadist und quälst gerne dein PC ..

Mini VI Befehlstabelle:

Aufruf: vi /etc/crontab
Der vi hat 2 Modi
den Befehlsmodus und den Eingabemodus.
Wenn der vi gestartet wird ist der Editor im Befehlsmodus: Im Befehlsmodus kann man im Text mit den Pfeiltasten im Text navigieren Die wichtigsten Grundbefehle für Änderungen im Text:
a = hängt am ende der Zeile in der der Cursor ist neuen Text an
i = füge in der aktuellen Cursorposition neuen text ein
im i oder a Modus können Zeichen mit enf Taste gelöscht werden
mit esc Taste kommt man aus den Eingabemodus raus
dd = lösche die Zeile in die der Cursor ist

beenden vi und abspeichern
:wq
beende nicht speichern
:q!

mit den 10% vom Befehlssatz vom VI kann man arbeiten