Измените часовой пояс cronjob

Ctrl+Y вставит последний объект, который Вы сокращаете (с Ctrl+U, Ctrl+K, Ctrl+W, и т.д.).

10
12.04.2015, 20:31
5 ответов

Проверьте настройку в /etc/time zone. В вопросе, который вы упомянули, что вы находитесь в "GMT+1", если это то, что ваш часовой пояс установлен, ваш скрипт будет всегда выполняться по UTC плюс один час. Если вы установите его, например, в "Европе/Париже", то время выполнения изменится с переходом на летнее время.

2
27.01.2020, 20:02

Скорее всего, это зависит от вашей операционной системы и реализации cron. Это невозможно в самой популярной реализации cron, vixie/isc cron. Из руководства crontab(5):

LIMITATIONS
       The  cron  daemon  runs with a defined timezone. It currently does not 
       support per-user timezones. All the tasks: system's and user's will 
       be run based on the configured timezone. Even if a user specifies  
       the TZ  environment  variable  in  his crontab this will affect only 
       the commands executed in the crontab, not the execution of the crontab 
       tasks themselves.
6
27.01.2020, 20:02

Из руководства:

Демон будет использовать, если оно есть, определение из /etc/time zone для часового пояса.

Окружение может быть переопределено в определениях кронтаба пользователя, но cron будет обрабатывать задачи только в одном часовом поясе.

1
27.01.2020, 20:02

Перенесите вашу работу на 8:00 и поспите один час, если вы находитесь в GMT+1

0 8 * * * [ "$(date +\%z)" = "+0100" ] && sleep 3600; place_your_command_here
1
27.01.2020, 20:02

В ответ на @Cyrus я сделал следующее:

Я создал скрипт, который проверяет смещение UTC:

#!/bin/bash
export TZ=":US/Eastern"
if [ "$(date +%z)" == "$1" ]; then
  shift
  exec $@
fi

Затем я добавляю два crontab записи для каждого смещения, которое я хочу:

0 8 * * * run-only-with-tz.sh -0400 place_your_command_here
0 9 * * * run-only-with-tz.sh -0500 place_your_command_here
2
27.01.2020, 20:02

Теги

Похожие вопросы