Назад | Перейти на главную страницу

Какой часовой пояс используется в cron?

Я предполагаю, что есть разница между моим временем PHP и временем сервера.

Когда я проверяю текущее время в PHP, он показывает, что используется MST. Однако задания cron запускаются не в нужное время.

Как я могу узнать, какой часовой пояс использует сам сервер, а не какой установлен PHP?

Задание Cron использует часовой пояс, определенный сервером (по умолчанию UTC), который вы можете проверить, набрав date команда в терминале. Следуйте приведенным ниже инструкциям, чтобы изменить часовой пояс сервера и перезапустить демон cron, чтобы служба cron узнала об изменении часового пояса.

Часовые пояса всех стран определены в /usr/share/zoneinfo каталог:

cd  /usr/share/zoneinfo/

Когда вы войдете в этот каталог, вы увидите названия разных стран и их часовой пояс.

Команда для изменения часового пояса сервера.

sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Если вы живете в Америке> Лос-Анджелес, вы можете изменить свой часовой пояс, используя указанную выше команду. Измените страну и штат в соответствии с вашими требованиями.


Команда для проверки даты и времени:

 date

Установите время и дату из командной строки:

date -s "19 APR 2012 11:14:00"

Если у вас есть несколько пользователей с большим количеством crontab и у них разные требования к часовому поясу, вы не можете просто изменить системный часовой пояс.

Но вы все равно можете установить определенный часовой пояс, который будет использоваться только для заданий cron в конкретном crontab, установив переменную CRON_TZ в начале crontab.

Например.

#@IgnoreInspection BashAddShebang
SHELL=/usr/bin/bash
CRON_TZ=UTC
PROJECT_DIR=/home/MY_USER/MY_PROJECT

40 06 * * 1-5 $PROJECT_DIR/prod/ingest.sh >> $PROJECT_DIR/logs/ingest_cron.out 2>> $PROJECT_DIR/logs/ingest_cron.err