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