Dlaczego cronjobs działają w niewłaściwym czasie?

10

Mam konfigurację cronjobs do codziennego uruchamiania na moim serwerze Ubuntu.

na przykład. 0 4 * * * polecenie

Działają, z wyjątkiem 8 godzin wcześniej. Podczas konfigurowania serwera był pierwotnie ustawiony na czas UTC. Pobiegłem, sudo dpkg-reconfigure tzdataaby ustawić serwer na CST, który jest 6 godzin za UTC. Co ciekawe, jestem w PST, który jest 8 godzin za UTC, ale nie wiem, skąd serwer mógłby to wiedzieć.

Jeśli uruchomię polecenie date, pokazuje czas w CST.

Musi być jakieś miejsce, w którym czas jest źle skonfigurowany. Gdzie mogę to rozwiązać?

Matt McCormick
źródło

Odpowiedzi:

21

Czy pamiętasz, aby ponownie uruchomić cron po zmianie strefy czasowej? Jeśli nie, cron może nadal mieć swoje stare pojęcie strefy czasowej od momentu jej początkowego uruchomienia.

Chociaż nie jest to absolutnie konieczne, zwykle sugeruję ponowne uruchomienie komputera po zmianie strefy czasowej - Strefa czasowa serwera nigdy nie powinna się zmieniać (a przynajmniej powinna być BARDZO rzadko), a to gwarantuje, że każdy program na serwerze zostanie zrestartowany i wie o zmianie :-)

voretaq7
źródło
Nie, nie uruchomiłem się ponownie. Zrobiłem to i poczekam, aby zobaczyć, czy to jest problem (który moim zdaniem może być).
Matt McCormick,
Po ponownym uruchomieniu usługi cron działa teraz w tym samym czasie co strefa czasowa, którą ustawiłem za pomocą tzdata. Dzięki.
Donny Kurnia
1
Zauważyłem, że wpisy w / var / log / cron pokazywały nieprawidłowy czas nawet po ponownym uruchomieniu crond. Ponowne uruchomienie rsyslog naprawiło ten problem.
zymhan
@WildVelociraptor Tak, syslog będzie również używał starych danych strefy czasowej do ponownego uruchomienia (więc źle oznaczy czas, nawet jeśli działają we właściwym czasie). Wszystko, co długo działało i rozpoczęło się przed zmianą danych strefy czasowej, będzie miało podobne zachowanie, dlatego generalnie wskazane jest ponowne uruchomienie.
voretaq7
7

Dla mnie odkryłem, że kiedy uruchamiam hwclockpolecenie, godzina różni się od czasu, gdy uruchamiam datepolecenie. Aby to naprawić, możesz zadzwonić, hwclock --systohcco zsynchronizuje dwa razy i uruchom cronjobs w oczekiwanym czasie.

ajon
źródło
W moim przypadku zarówno datei hwclockzgłosić identyczny czas, ale nadal cron nie robi tego, co będę oczekiwać go.
unfa,
Ty ocaliłeś moje życie, dziękuję bardzo hwclock - systohc naprawił dla mnie niewłaściwą datę =)
Marcus J.Kennedy