Przykład wydania:
* 9 * * * echo 9
* 10 * * * echo 10
Powyższe spowoduje wysłanie wiadomości e-mail do użytkownika co minutę, ale wszystkie odpowiedzi „9” pojawią się o 10:00 -> 10:59, a „10” pojawią się o 11:00 -> 11:59 .
Prowadzenie pracy
* * * * * /bin/date ; /bin/date -u
Zwrócono oczekiwaną (poprawną) datę i godzinę. dotyczyło to zarówno czasu UTC, jak i czasu lokalnego (Ameryka / Denver). Zmiana tego zadania, aby uruchamiało się co minutę o określonej godzinie, powoduje przesunięcie (zadania, które mają być uruchamiane o 9, o 10 itd.).
Aktualny debugowanie, które ukończyłem:
Okej, to dziwne. Może mój plik strefy czasowej jest w jakiś sposób pomieszany? Sprawdźmy to
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
Sprawdziłem zegar sprzętowy, aby sprawdzić, czy jest on wyłączony, lub jakoś nie zgadza się z moimi lokalnymi ustawieniami (uruchom jako root).
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
Wygląda na to, że przestanie działać o sekundę, ale to nie powinno sprawić, że moje zadania crona będą działać o całą godzinę poza harmonogramem, prawda?
Jestem również pewien następujących rzeczy:
- Czy ostatnio zmieniła się moja strefa czasowa? Nie
- Czy mimo to próbowałeś ręcznie ustawić strefę czasową? tak
- Czy zresetowałeś crona po ustaleniu strefy czasowej? tak
- Czy upewniłem się, że usługa cron została zrestartowana? tak
- Czy zrestartowałem usługę cron? tak
- Czy naprawdę jesteś pewien, że cron został zrestartowany? 100% pewności, że Cron został zrestartowany
Inne potencjalnie istotne informacje:
Uruchamianie Debiana.
cat /etc/debian_version
8.6
Bieżące jądro
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
Zaktualizowany debugowanie:
Ran 'hwclock --systohc', niezauważalne zmiany w zachowaniu. Uruchom to polecenie, aby sprawdzić
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
Nie mogę uruchomić „cat / etc / sysconfig / clock”, ponieważ ten plik nie istnieje. Uruchomienie polecenia find w drzewie / etc / w celu znalezienia „clock” potwierdza, że nie mam tam pliku o tej nazwie.
Sprawdzono, czy cokolwiek, o czym jestem świadomy, ustawiło zmienną CRON_TZ. Nie jest ustawiony na poziomie użytkownika ani na poziomie katalogu głównego. Wywołanie echa przez crona nie daje żadnego wyniku.
CRON_TZ
zmienna env var jest ustawiona gdziekolwiek?hwclock --systohc
tylko dla kompletności i dodajcat /etc/sysconfig/clock
do pytania?Odpowiedzi:
Jeszcze jedno miejsce do poszukiwania: skrypt (y) start-at-boot
cron
lub plik crontab starej szkoły/etc/crontab
. Możliwe, że zmienna środowiskowa TZ zostanie ustawiona, powiedzmy,/etc/init.d/cronie
lub/lib/systemd/system/crond.service
nie jestem pewien, czego Debian używa do systemu init.Widziałem coś takiego, gdy próbowałem
crond
uruchomić rzeczy co drugą godzinę:crond
uruchamiał skrypt w nieparzystych godzinach. Podejrzewałem, ale nigdy nie udowodniłem sobie, że ma to związek z zamieszaniem związanym z czasem letnim.źródło
/etc/timezone
plik. TZ =cat /etc/timezone
. Ten plik wydaje się być poprawny (przebiegł sumę kontrolną, aby się upewnić, że jest identyczny z tym, jaki powinien być). /lib/systemd/system/crond.service wydaje się nie chcieć modyfikować żadnych zmiennych TZ. Sprawdzę sugestię * / 2, aby zobaczyć, czy widzę to samo.