Jak sprawić, aby zadania cron działały w GMT, a nie w czasie lokalnym?
to jest mój plik crontab:
#m h d m wday command
TZ=GMT
5 0,6,12,18 * * * ~/Documents/bash/transfer.sh
moje zadania wydają się być uruchomione w czasie lokalnym (GMT + 11). Pracuję w systemie OS X Snow Leopard, ale po zakończeniu programowania przeniesię kod na Linux.
Środowisko linux może być środowiskiem współdzielonym, w którym mogę mieć mniejszą kontrolę nad konfiguracją.
Odpowiedzi:
Nie wszystkie wersje
cron
obsługują uruchomione zadania przy użyciu strefy czasowej innej niż system.Jeśli tak, prawdopodobnie specyfikacja powinna być
TZ=GMT
lubTZ=UTC
(bez nawiasów kątowych). W niektórych przypadkach zmienną będzieCRON_TZ
.Najlepiej jest sprawdzić dokumentację dotyczącą konkretnego systemu. Zobaczyć
man 5 crontab
.źródło
Jeśli masz czas lokalny
Europe/London
. Następnie:Inny przykład:
Jeśli twój regularny czas to
+0500
zmianaUTC
, a twój czas sezonowy to+0600
zmianaUTC
. Następnie dodaj+5
do wszystkich godzin określonych w powyższym przykładzie. Oznacza to bycie prowadzony na08:15am
i09:15am
od czasu lokalnego odpowiednio. Zatem zmodyfikowane linie cron wyglądałyby następująco:[EDYCJA] Pamiętaj o
\
dodaniu%
znaków procentowych w pliku crontab. Ponieważ crontab interpretuje je jako separator nowej linii. np.%
->\%
.źródło
Być może mógłbyś owinąć oryginalny plik binarny crond.
źródło