Sommerzeit vs cron: Unterschied zwischen den Versionen
Robi (Diskussion | Beiträge) |
Robi (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
− | <!-- | + | == Sommerzeit vs. cron == |
+ | |||
+ | '''Autoren: ''' notoxp oc2pus | ||
+ | |||
+ | |||
+ | ; Achtung : | ||
+ | Das hier beschriebene gilt für den mit '''ISC Cron V4.1''' benannten cron. Zur erkennen an der Version des Cronpaketes >= 4.1.... | ||
+ | In einigen älteren Linux (zB SuSE 9.1) ist noch ein Cron in der Version 3.... enthalten. Dieser hat auch eine andere Manpage, dessen Verhalten würde hier nicht untersucht. | ||
+ | |||
+ | |||
+ | |||
+ | '''Problembeschreibung''' | ||
+ | |||
+ | * Bei der Umstellung von Sommer- auf Winterzeit gibt es diese Uhrzeit in der Nacht zwei mal. Oder noch besser: Wenn wieder von Winter- auf Sommerzeit umgestellt wird gibt es diese Uhrzeit überhaupt nicht. | ||
+ | :''Wie reagiert der cron-deamon darauf?'' | ||
+ | |||
+ | |||
+ | |||
+ | === Aussagen der [http://www.linuxmanpages.com/man8/cron.8.php Manpage von cron(8)] === | ||
+ | |||
+ | <pre> | ||
+ | Daylight Saving Time and other time changes | ||
+ | |||
+ | Local time changes of less than three hours, such as those caused by the start | ||
+ | or end of Daylight Saving Time, are handled specially. This only applies to jobs that | ||
+ | run at a specific time and jobs that are run with a granularity greater than one hour. | ||
+ | Jobs that run more frequently are scheduled normally. | ||
+ | |||
+ | If time has moved forward, those jobs that would have run in the interval that has | ||
+ | been skipped will be run immediately. | ||
+ | Conversely, if time has moved backward, care is taken to avoid running jobs twice. | ||
+ | |||
+ | Time changes of more than 3 hours are considered to be corrections to the clock or timezone, | ||
+ | and the new time is used immediately. | ||
+ | </pre> | ||
+ | |||
+ | === Das Verhalten des cron bei Zeitspüngen === | ||
+ | |||
+ | ; Zeitsprünge über 3 Stunden : | ||
+ | Die aktuelle Zeit wird übernommen, für eventuelle Cronjobs die übersprungen wurden gilt uneingeschränkt die neue Zeit | ||
+ | |||
+ | ; Zeitsprünge kleiner 3 Stunden : | ||
+ | Es kommt eine spezielle Logig zu tragen | ||
+ | ::* beim zurückstellen der Uhr werden cronjobs nicht noch einmal gestartet | ||
+ | ::* beim vorstellen der Uhr werden übersprungene Cronjobs nachgeholt | ||
+ | ::* dabei werden aber nur Jobs berücksichtigt die eine Startfrequenz größer als 1 Stunde haben. | ||
+ | |||
+ | |||
+ | === Beispiele === | ||
+ | <!-- Beispiele wurden nicht alle getestet robi --> | ||
+ | |||
+ | 30 2 * * * /usr/local/bin/shell.sh | ||
+ | |||
+ | * beim Umstellen auf Winterzeit (nach alter Zeit) 02:30 gestartet | ||
+ | * beim Umstellen auf Sommerzeit (nach neuer Zeit) 03:01 gestartet | ||
+ | |||
+ | |||
+ | |||
+ | 15,45 2 * * * /usr/local/bin/shell.sh | ||
+ | |||
+ | * beim Umstellen auf Winterzeit 4 mal gestartet jeweils nach neuer und nach alter Zeit | ||
+ | * beim Umstellen auf Sommerzeit nicht gestartet | ||
+ | |||
+ | |||
+ | |||
+ | * * * * * /usr/local/bin/shell.sh | ||
+ | |||
+ | * beim Vorstellen der Uhr um 5 Minuten fallen 5 Jobs aus also bleibt Ausführung 1/minute | ||
+ | * beim Zurückstellen der Uhr um 5 Minuten kommen 5 Jobs dazu also bleibt Ausführung 1/minute | ||
+ | |||
+ | |||
+ | |||
+ | === Bemerkungen === | ||
+ | |||
+ | Da dieses logische Verhalten des cron nicht auf allen UNIX-Systemen vorhanden ist, gilt für die meisten Admins nach wie vor | ||
+ | |||
+ | * für wichtige Jobs die Zeit von 01.59 Uhr bis 03.01 Uhr in Cronjobs möglichst vermeiden | ||
+ | * eventuell für die Umstellung Sommer/Winterzeit eigene Logig mit restarten des cron erstellen | ||
+ | |||
+ | |||
+ | <!-- robi 03.09.2006 --> | ||
+ | |||
+ | |||
[[Category:Uhrzeit]] | [[Category:Uhrzeit]] |
Version vom 3. September 2006, 13:27 Uhr
Inhaltsverzeichnis
Sommerzeit vs. cron
Autoren: notoxp oc2pus
- Achtung
Das hier beschriebene gilt für den mit ISC Cron V4.1 benannten cron. Zur erkennen an der Version des Cronpaketes >= 4.1.... In einigen älteren Linux (zB SuSE 9.1) ist noch ein Cron in der Version 3.... enthalten. Dieser hat auch eine andere Manpage, dessen Verhalten würde hier nicht untersucht.
Problembeschreibung
- Bei der Umstellung von Sommer- auf Winterzeit gibt es diese Uhrzeit in der Nacht zwei mal. Oder noch besser: Wenn wieder von Winter- auf Sommerzeit umgestellt wird gibt es diese Uhrzeit überhaupt nicht.
- Wie reagiert der cron-deamon darauf?
Aussagen der Manpage von cron(8)
Daylight Saving Time and other time changes Local time changes of less than three hours, such as those caused by the start or end of Daylight Saving Time, are handled specially. This only applies to jobs that run at a specific time and jobs that are run with a granularity greater than one hour. Jobs that run more frequently are scheduled normally. If time has moved forward, those jobs that would have run in the interval that has been skipped will be run immediately. Conversely, if time has moved backward, care is taken to avoid running jobs twice. Time changes of more than 3 hours are considered to be corrections to the clock or timezone, and the new time is used immediately.
Das Verhalten des cron bei Zeitspüngen
- Zeitsprünge über 3 Stunden
Die aktuelle Zeit wird übernommen, für eventuelle Cronjobs die übersprungen wurden gilt uneingeschränkt die neue Zeit
- Zeitsprünge kleiner 3 Stunden
Es kommt eine spezielle Logig zu tragen
- beim zurückstellen der Uhr werden cronjobs nicht noch einmal gestartet
- beim vorstellen der Uhr werden übersprungene Cronjobs nachgeholt
- dabei werden aber nur Jobs berücksichtigt die eine Startfrequenz größer als 1 Stunde haben.
Beispiele
30 2 * * * /usr/local/bin/shell.sh
- beim Umstellen auf Winterzeit (nach alter Zeit) 02:30 gestartet
- beim Umstellen auf Sommerzeit (nach neuer Zeit) 03:01 gestartet
15,45 2 * * * /usr/local/bin/shell.sh
- beim Umstellen auf Winterzeit 4 mal gestartet jeweils nach neuer und nach alter Zeit
- beim Umstellen auf Sommerzeit nicht gestartet
* * * * * /usr/local/bin/shell.sh
- beim Vorstellen der Uhr um 5 Minuten fallen 5 Jobs aus also bleibt Ausführung 1/minute
- beim Zurückstellen der Uhr um 5 Minuten kommen 5 Jobs dazu also bleibt Ausführung 1/minute
Bemerkungen
Da dieses logische Verhalten des cron nicht auf allen UNIX-Systemen vorhanden ist, gilt für die meisten Admins nach wie vor
- für wichtige Jobs die Zeit von 01.59 Uhr bis 03.01 Uhr in Cronjobs möglichst vermeiden
- eventuell für die Umstellung Sommer/Winterzeit eigene Logig mit restarten des cron erstellen