Обычно задания Cron запускаются с использованием местного времени, определенного в системе. Однако вы можете предпочесть запускать задание Cron в другом часовом поясе без обязательного изменения времени и даты вашего сервера.
Вы можете проверить свое местное время с помощью команды timedatectl следующим образом:
$ timedatectl
Вы также можете использовать команду date следующим образом:
$ дата
Итак, как вы можете установить другой часовой пояс для ваших Crontabs? Давай выясним.
Как установить часовой пояс для Crontabs
В вашей локальной системе Linux часовые пояса обычно указываются в / usr / share / zoneinfo каталог. Каталог содержит список континентов и стран и их часовых поясов, как показано ниже.
$ ls / usr / share / zoneinfo /
Вы можете легко настроить текущий часовой пояс на другой, используя показанный синтаксис. Например, чтобы установить в системе время в Токио, Япония, просто выполните:
$ sudo ln -sf / usr / share / zoneinfo / Asia / Tokyo / etc / localtimeОднако вы не можете изменить время своей системы, особенно когда несколько пользователей планируют разные задания Cron. Это повлияет на время выполнения их заданий Cron.
К счастью, вы можете настроить конкретный часовой пояс для своей работы Cron следующим образом:
Во-первых, вам нужно экспортировать переменную TZ в сценарий оболочки перед любыми другими записями оболочки. Затем войдите в свой crontab и используйте переменную среды crontab CRON_TZ в начале файла crontab.
Предположим, я хочу настроить задание Cron для запуска сценария резервного копирования в 14:20 каждый день в Европа / Лондон время а не мое местное время. Мое местное время на 2 часа опережает лондонское время, поэтому в 14:20 в Лондоне мое местное время будет 16:20 или 14.20.
Сначала перейдите к файлу сценария оболочки и экспортируйте переменную TZ перед любыми другими записями сценария. Посмотрите, что я сделал в моем сценарии Shell.
EXPORT TZ = Европа / Лондон
Сохраните изменения и выйдите из скрипта.
Затем войдите в свой файл crontab, выполнив команду:
$ crontab -eОбязательно укажите переменную crontab CRON_TZ перед всеми другими записями Cron следующим образом.
CRON_TZ = Европа / Лондон20 14 * * * / home / james / резервное копирование.ш
Сохраните и выйдите из crontab. Чтобы быть уверенным в настройках, вы можете вывести список crontab с помощью команды:
$ crontab -lИтак, когда часы отсчитывали 14:20 по лондонскому времени, что соответствует 16:40 по местному времени или 16.20, резервное копирование было успешным.
Заключение
Это руководство является идеальной демонстрацией того, что вы можете установить указанный часовой пояс для своих Crontab, не меняя системного времени. Таким образом, вы можете настроить разные задачи для работы в разных часовых поясах в соответствии с вашими потребностями, например, если вы хотите отправлять электронные письма подписчикам определенного часового пояса в их время, а не в ваше местное время.