У меня есть несколько событий cron, которые нужно запустить, но в разных часовых поясах. Например, у меня есть одно событие, которое запускается каждый день в 08:30 UTC, а другое событие - каждый день в 09:30 CET. Я читал несколько статей о том, что часовой пояс можно установить в crontab, установив TZ=CET
перед командой, но я предполагаю, что это не сообщает Cron, в какое время установлено следующее время события. Это вообще возможно? На сервере работает Debian с системным часовым поясом в формате UTC.
TZ=CET
* 13 * * * root date >> ~/date.log
Я также пробовал CRON_TZ=CET
но это тоже не работает.
TZ=CET
в верхней части вашего crontab
установит часовой пояс для заданий, запускаемых из cron, но не повлияет cron
интерпретация времени начала работы.
Если вы хотите установить часовой пояс для cron
в целом, затем добавив
export TZ=CET
к /etc/sysconfig/crond
(или там, где эквивалентная конфигурация для вашего дистрибутива) должна измениться cron
представление о времени. Вам просто нужно найти файл конфигурации, источником которого является запускающий сценарий инициализации. cron
.
Видеть https://askubuntu.com/questions/54364/how-do-you-set-the-timezone-for-crontab для более подробного обсуждения этого.
Если вам просто нужно установить TZ
для определенных заданий установите его в начале команды. Например ...
*/1 * * * * TZ=Japan date >> date.log
*/1 * * * * TZ=CET date >> date.log
*/1 * * * * date >> date.log
nph9@goat$ cat date.log
Mon May 11 22:34:01 JST 2015
Mon May 11 14:34:01 BST 2015
Mon May 11 15:34:01 CEST 2015