Lo scorso fine settimana abbiamo dovuto cambiare l'orario dalle 02:00 alle 03:00.
Domanda: cosa accadrebbe se ci fosse un cronjob alle 02:30?
crond è una soluzione molto vecchia per la pianificazione, probabilmente dovrebbe gestirla, ma non so come.
Lo scorso fine settimana abbiamo dovuto cambiare l'orario dalle 02:00 alle 03:00.
Domanda: cosa accadrebbe se ci fosse un cronjob alle 02:30?
crond è una soluzione molto vecchia per la pianificazione, probabilmente dovrebbe gestirla, ma non so come.
Risposte:
Probabilmente dipende dalla tua implementazione cron, ma il popolare cron Vixie afferma nel manuale:
cron quindi si sveglia ogni minuto, esaminando tutti i crontab memorizzati, controllando ogni comando per vedere se dovrebbe essere eseguito nel minuto corrente.
e
Considerazioni speciali esistono quando l'orologio viene cambiato di meno di 3 ore, ad esempio all'inizio e alla fine dell'ora legale. Se il tempo si è spostato in avanti, quei lavori che sarebbero stati eseguiti nel tempo saltato verranno eseguiti subito dopo la modifica. Al contrario, se il tempo si è spostato indietro di meno di 3 ore, i lavori che rientrano nel tempo ripetuto non verranno rieseguiti.
Sono interessati solo i lavori eseguiti in un determinato momento (non specificato come @hourly, né con '*' nell'identificatore di ora o minuti). I lavori specificati con caratteri jolly vengono eseguiti immediatamente in base alla nuova ora.
Poiché la modifica dell'ora legale è stata inferiore a 3 ore, il programma verrà eseguito poco dopo le 3:00
Non sono sicuro che si tratti del comportamento specifico di Vixie cron, mi sembra di ricordare che il mio PDP-11 ha funzionato anche negli anni '80, ma non ne sono sicuro.
La soluzione migliore è far funzionare il tuo computer con l'orologio hardware impostato su UTC, (Coordinated Universal Time), AKA GMT o Zulu Time e cambiare il modo in cui l'ora viene visualizzata impostando il fuso orario locale per consentire l'ora legale tempo di prendere il controllo.
Su SUSE Linux, e probabilmente sulla maggior parte degli altri, se l'Hardware Clock System -> Ambiente -> Clock -> HWCLOCK è impostato su UTC con il flag -u allora e il tuo fuso orario è impostato su dove ti trovi il sistema visualizzerà automaticamente le ore locali con correzioni dell'ora legale per te.
Questo ha una serie di vantaggi:
Per ulteriori informazioni digitare man hwclockin un terminale.