Moje zadania cron są obliczane godzinę później w porównaniu do czasu serwera. Nie rozumiem co się dzieje.
Moja konfiguracja jest następująca:
Czas serwera :
Europe/Paris
W / etc / default / cron dodałem następujący wiersz:
TZ="Europe/Paris"
Mimo to zadanie cron jest uruchamiane godzinę później niż czas serwera. Naprawdę trudne jest to, że jeśli poproszę crona, aby zagrał w „date”, podaje serwerowi datę (dobrą!).
Nie mam pojęcia, jak rozwiązać ten problem; Czytałem na forach, ale nie znalazłem nic ciekawego.
Co myślisz ?
/etc/timezone
środku Czy zmodyfikowałeś/etc/timezone
się niedawno, zanimcron
proces się rozpoczął? Próbowałeś/etc/init.d/cron restart
?Odpowiedzi:
(Kopiowanie mojego komentarza jako odpowiedzi, ponieważ okazało się, że jest to rozwiązanie; zgadłem.)
Tak więc zadania crona są planowane w UTC (
Europe/Paris
z jednogodzinnym przesunięciem w stosunku do UTC).Strona podręcznika użytkownika Vixie cron mówi:
Co jest w
/etc/timezone
środku Czy zmodyfikowałeś/etc/timezone
się niedawno, niż rozpoczął się proces cron? Czy próbowałeś?
źródło
Niektóre dystrybucje, takie jak Fedora, zapewniają mechanizm, w którym można ustawić
CRON_TZ=
przesłonięcie domyślnej strefy czasowej.Z Fedory
man 5 crontab
Coś takiego:
źródło
Wikipedia mówi
Więc może twój identyfikator logowania ma ustawienie TZ, które różni się od systemowego ustawienia TZ?
źródło
Potrzebowałem ponownie uruchomić crona, ale dla mnie było to polecenie
źródło
Właśnie to odkryłem na Ubuntu 14/16. Działa idealnie dla mnie.
Kroki (implikowane sudo):
cat /etc/timezone
rm -fv /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
apt install -y --reinstall tzdata
/etc/init.d/rsyslog restart
tail -f /var/log/syslog
cat /etc/timezone
źródło
cron
zostanie ponownie uruchomiony?