Harmonogram Crontab w różnych strefach czasowych

18

Chciałbym zaplanować swoje zadania w EST, ale chcę, aby rzeczywiste zadanie działało w domyślnej systemowej strefie czasowej.

Jak najlepiej to zrobić?

DD
źródło

Odpowiedzi:

25

Po prostu ustaw zmienną pliku crontab TZ = Some / Where Możesz ustawić TZ kilka razy, aby mieć osobne zadania w różnych strefach czasowych. Na przykład:

TZ=UTC
* 7 * * * root date | mail root
TZ=CEST
* 7 * * * root date | mail root
TZ=PCT
* 7 * * * root date | mail root

o 7:00 UTC (lub strefie czasowej, w której uruchomiono demona crona) zostaną uruchomione trzy zadania, ale każde ma własną zmienną TZ.

datacompboy
źródło
+1 tego nie wiedziałem - całkiem przydatne.
Coops
+1 bardzo fajna wskazówka!
Janne Pikkarainen
Chcę, aby wszystkie działały w tej samej strefie czasowej, ale w różnych momentach!
DD.
Agh, demon cron, który sam zna zmienną TZ, już tam jest: blogs.oracle.com/chrisg/entry/…
datacompboy
2
Nie widzę nic w pytaniu, które wskazywałoby, że środowiskiem był OpenSolaris ... Vixie cron wyraźnie mówi, że to nie działa.
womble
14

W wersji crona CENTOS po prostu dodaj wiersz: CRON_TZ = America / New_York

Spowoduje to uruchomienie harmonogramu zgodnie z czasem w Nowym Jorku, ale zadanie będzie działać w domyślnej strefie czasowej.

DD
źródło
Dziękujemy za wskazówkę dotyczącą domyślnej strefy czasowej. Wymaga dodania zmiennej TZ w każdym wierszu tabeli, jeśli chcesz, aby zadanie cron działało także we wschodniej strefie czasowej, np .:export TZ=America/New_York; unix_command; next_cmd_in_sequence
Mike S
1
Wystarczy wspomnieć, że możesz mieć wiele ustawień CRON_TZ w jednym crontabie - bardzo przydatne. :)
Lester Cheung
0

Możesz uruchomić osobną instancję crona z inną TZzmienną środowiskową lub po prostu nauczyć się dodawać lub odejmować kilka godzin.

womble
źródło
2
Tak ... to nie jest tak proste ze zmianami czasu letniego, które zachodzą w różnych momentach w różnych strefach czasowych. Myślałem, że zmienna środowiskowa TZ oznaczałaby, że proces działa w innym TZ?
DD.
Tak, a proces, który ma inną TZ, to crond.
womble
jak mogę uruchomić usługę crond w innym TZ? Przepraszam, jestem początkującym Uniksem.
DD.