Как сделать так, чтобы задания cron запускались по Гринвичу, а не по местному времени?
это мой файл crontab:
#m h d m wday command
TZ=GMT
5 0,6,12,18 * * * ~/Documents/bash/transfer.sh
кажется, что мои работы выполняются по местному времени (GMT + 11). Я запускаю os x snow leopard, но переместу код в linux, когда разработка будет завершена.
Среда linux может быть общей средой, где у меня меньше контроля над конфигурацией.
Ответы:
Не все версии
cron
поддерживают выполнение заданий с использованием часового пояса, отличного от системного.Если это так, вероятно, спецификация должна быть
TZ=GMT
илиTZ=UTC
(без угловых скобок). В некоторых случаях переменная будетCRON_TZ
.Лучше всего проверить документацию, относящуюся к конкретной системе. См
man 5 crontab
.источник
Если местное время
Europe/London
. Затем:Другой пример:
Если ваше обычное время -
+0500
сменаUTC
, а ваше сезонное время -+0600
сменаUTC
. Затем добавьте+5
ко всем часам, указанным в примере выше. Это означает , что время запуска в08:15am
и09:15am
из вашего местного времени соответственно. Таким образом, ваши модифицированные строки cron будут выглядеть так:[РЕДАКТИРОВАТЬ] Обязательно
\
экранируйте любые проценты%
в файле crontab. Поскольку crontab интерпретирует их как разделитель новой строки. например%
->\%
.источник
Вы, возможно, могли бы обернуть оригинальный двоичный файл crond.
источник