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

как использовать TimeZone с вкладкой Cron

Я выполняю задание в определенную дату [время клиента не по местному времени], чтобы отправить электронное письмо моим клиентам. Я использую задание cpanel cron, я пытался использовать задание cron с часовым поясом

но он все еще отправляется в моем часовом поясе

32 16 08 05 *  /usr/bin/curl CRON_TZ=Africa/Algiers https://www.example.com/SendCron.php?CronID=382 #CronID382END # z93v66 

что не так я сделал, используя Cron_TZ ??

Ваш CRON_TZ= не в том месте в вашем crontab файл, как атрибут опции для /usr/bin/curl.

Вместо этого вы должны иметь его как переменная окружения установлен перед записи cron:

CRON_TZ=Africa/Algiers 

32 16 08 05 *  /usr/bin/curl https://www.example.com/SendCron.php?CronID=382

Если вам нужно установить часовой пояс для одной записи cron в одной строке, это невозможно с CRON_TZ переменная окружения, но вам нужно вызвать внешнюю env (запустите программу в измененной среде), чтобы изменить TZ:

32 16 08 05 * /usr/bin/env TZ=Africa/Algiers /usr/bin/curl https://www.example.com/Send...

Обратите внимание, что оба меняют часовой пояс для команды, а не для демона cron. Демон cron просто проверяет, соответствуют ли поля текущему времени или нет, независимо от CRON_TZ переменная. Страница руководства для systemd-cron crontab объясняет это ограничение:

Модули systemd-cron работают с определенным часовым поясом. В настоящее время он не поддерживает часовые пояса для отдельных пользователей. Все задачи: системные и пользовательские будут выполняться в соответствии с настроенным часовым поясом. Даже если пользователь указывает переменную среды TZ в своем crontab, это повлияет только на команды, выполняемые в crontab, но не на выполнение самих задач crontab.

Если вам нужно запускать расписания на основе часового пояса, вы должны изменить часовой пояс сервера, например:

ln -sf /usr/share/zoneinfo/Africa/Algiers /etc/localtime