Automatisierte Befehle

  • Vielleicht haben Sie sich schon öfters gefragt, wie Sie bestimmte Programme immer wieder aufrufen können und zu einer bestimmten Uhrzeit. Eventuell wollen Sie, dass Ihre PPP Verbindung zu einer festgelegten Uhrzeit hergestellt/getrennt wird oder Sie wollen ein Script ausführen und nicht ständig vor dem Rechner sitzen. Dafür gibt es ein Programm namens "cron". Als erstes sind hier die ausführlichen Manpages zu nennen, welche Sie mit "man cron", "man crontab" und "man 5 crontab" lesen können. Darin sind alle Befehle/Möglichkeiten ausführlich beschrieben. Hier ein kleiner Crash-Kurs: Alle zeitgesteuerten Befehle die Sie im cron anlegen wollen werden in einer crontab hinterlegt. Cron selbst ist ein daemon, der ständig läuft und dadurch diese crontabs ausliest und den entsprechenden Befehl ausführen kann. Jeder User mit eigenem Account (Shell muss vorhanden sein) kann dies nutzen. Um als User in Ihre "crontab" reinzufinden, können Sie "crontab -e" ausführen. Damit öffnet sich automatisch die entsprechende Datei die für Sie gültig ist. Die Syntax sieht folgendermaßen aus: Feld 1: Minuten 0-59, Feld 2: Stunde 0-23, Feld 3: Tag des Monats 0-31, Feld 4: Monat 0-12 oder Namen, Feld 5: Tag der Woche 0-7 (0/7 ist Sonntag). Ein Asterix oder Wildcard (*) bedeutet Anfang-Ende also "immer". Das ganze sieht dann so aus: 0 22 * * 1-5 mail -s "It´s 10pm" joe%Joe,%%Where are your kids?% Dieser Befehl wird 22 Uhr, an Wochentagen ausgeführt und schreibt eine Mail an Joe. Oder: 0,30 * 1,15 * * /path/to/meinscript.pl Dieser Befehl wird jede Stunde und jede halbe Stunde am 01. und 15. jeden Monats ausgeführt. Wenn Sie Scripte und Programme für die User selbst verwalten wollen, können Sie dies als root in der /etc/crontab Datei tun. In dieser Datei haben die User keine Möglichkeit Einträge zu machen/ändern. Diese wird nur von root verwaltet. Einträge dort sehen daher so aus: * 0-23/2 * * 1-5 user /path/to/befehl Dieser Befehl wird 0 Uhr, 2 Uhr, 4 Uhr etc. als "user" ausgeführt. Dort können Sie jeden beliebigen User einfügen. In dieser Datei kann man auch festlegen wer die Mails vom cron bekommt. Der cron selbst schreibt über den Ablauf vom Script und eventuelle Rückmeldungen ein Logfile und mailt es an root. Wenn Sie das ändern wollen, schreiben Sie über die Zeile ein "MAILTO=user1". Damit geht die Mail an einen anderen User (hier: user1). Beachten Sie bitte, dass alle Zeilen unterhalb des MAILTO´s an den User gehen solange diese Variable nicht wieder geändert wird. Noch ein letzter Tipp: Wenn Sie vor der ganzen Zeile ein "-" setzen, dann taucht der cron nicht im Logfile (/var/log/messages) auf. Bsp.: -*/2 * * * * root fetchmail -a Dieser Befehl wird aller 2 Minuten ausgeführt. Damit wird als root "fetchmail -a" ausgeführt, welches Ihre Mails vom POP3 Server holt. Des weiteren wird kein Eintrag in /var/log/messages über dieses Kommando gemacht. Weitere Beispiele finden Sie in den obigen Manpages.