Tach Leute. Habe versucht, das genaue Verhalten von cron.{hourly,daily...} festzustellen, aber in den SuSE-Büchern und in der man-Page bin ich nicht fündig geworden. Sind folgende Überlegungen richtig: Einträge in einer crontab laufen wie programmiert durch, wenn der Rechner läuft, und sie tun es nicht, wenn er nicht läuft. Wird er nach einem verpaßten cronjob wieder hochgefahren, läuft das System weiter wie bisher, d.h. nichts wird nachgeholt. Demgegenüber wird ein Skript, das zB in cron.weekly liegt, nachgeholt, wenn die Kiste über den Laufzeitpunkt hinaus ausgeschaltet war und danach wieder hochgefahren wird. Richtig? Was passiert, wenn mehrere Zeitpunkte verpaßt wurden? Läuft dann der cronjob mehrmals durch, oder einmal stellvertretend für sämtliche verpaßten Aufrufe. Ich nehme an letzteres. Ist damit die Besonderheit der cron.{hourly...} beschrieben, oder fehlt was? Gruß. Andy
Hallo Andy, * Andy Feile schrieb am 26.Sep.2002:
Habe versucht, das genaue Verhalten von cron.{hourly,daily...} festzustellen, aber in den SuSE-Büchern und in der man-Page bin ich nicht fündig geworden.
Sind alles shellskripte, die man sich ansehen kann.
Sind folgende Überlegungen richtig:
Einträge in einer crontab laufen wie programmiert durch, wenn der Rechner läuft, und sie tun es nicht, wenn er nicht läuft.
Wie sollten sie auch?
Wird er nach einem verpaßten cronjob wieder hochgefahren, läuft das System weiter wie bisher, d.h. nichts wird nachgeholt.
Richtig. cron ist gemacht worden für Rechner, die Tag und Nacht durchlaufen.
Demgegenüber wird ein Skript, das zB in cron.weekly liegt, nachgeholt, wenn die Kiste über den Laufzeitpunkt hinaus ausgeschaltet war und danach wieder hochgefahren wird. Richtig?
Das ist das Ergebnis. Letztendlich sind es Skripte, die von cron gesteuert werden.
Was passiert, wenn mehrere Zeitpunkte verpaßt wurden? Läuft dann der cronjob mehrmals durch, oder einmal stellvertretend für sämtliche verpaßten Aufrufe. Ich nehme an letzteres.
Es läuft nur einmal.
Ist damit die Besonderheit der cron.{hourly...} beschrieben, oder fehlt was?
Ich habe hier SuSE 7.2, kann sein, daß es bei der 8.0 oder 8.1 leicht andes ist, im Wesentlichen wird es aber gleich sein. In der /etc/crontab steht folgende Zeile: -*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons Das heißt, alle viertel Stunden wird das Skript /usr/lib/cron/run-crons ausgeführt. (so es das gibt.) In diesem Skript wird z.B die Datei /var/spool/cron/lastrun/cron.daily gelöscht, wenn sie älter als ein Tag ist. Andere Dateien in entsprechenden Abständen. Anschließend werden alle Skripte in /etc/cron.daily ausgeführt falls /var/spool/cron/lastrun/cron.daily nicht existiert und dann neu angelegt. Bei hourly, .... entsprechend. Dadurch wird alles was in /etc/cron.daily steht ausgeführt, falls es über einen Tag lang nicht ausgeführt wurde. Und zwar spätestens eine viertel Stunde, nachdem dies der Fall ist, und der Rechner eingeschaltet. Darüberhinaus gibt es in der /etc/corntab noch folgende Zeilen: 59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly 14 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily 29 0 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly 44 0 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly Das heißt, kurz nach Mitternacht wird die /var/spool/cron/lastrun/cron.daily gelöscht, was zur Folge hat, daß in der daraufflogenden Minute, mittels run-crons, alles ausgeführt wird, was in der /etc/cron.daily steht. Somit wird alles was in /etc/cron.daily steht (damit meine ich natürllich immer nur ausführbare Programme) kurz nach Mitternacht ausgeführt, aber spätestens, wenn es einen Tag lang nicht ausgeführt wurde. Der Rechner muß natürlich an sein. Bernd -- ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend. SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen. AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9
participants (2)
-
Andy Feile
-
B.Brodesser@t-online.de