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