CRON_TZ указывает вашей таблице cron работать в назначенном часовом поясе, вы также можете использовать TZ, который устанавливает часовой пояс для вашей команды, если вы хотите, чтобы он использовал часовой пояс, отличный от системного.
# мин час дом месяц команда доу
CRON_TZ=Европа/Хельсинки
0 9 * * * TZ=Европа/Хельсинки /bin/sh -c 'date +"$USER: \%a \%e \%b \%Y \%H:\%M:\%S \%Z" ' >> /tmp/timestamp.log
Этот cron запустится, когда часы пробьют 09:00 в Финляндии, то есть 08:00 здесь.
[bac0n@betazoid ~ 07:59]: tail -f /tmp/timestamp.log
bac0n: Сб, 4 декабря 2021 г., 09:00:01 EET
Если вы хотите запускать определенные сценарии в разных часовых поясах, вы можете использовать системный.таймер
вместо. Существует бесконечное количество способов организации вашего таймера/сервисов, например, вы можете использовать экземпляр таймера для добавления различных часовых поясов.
# файл: часовой пояс@.timer
[Ед. изм]
Description=Таймер для часового пояса %I
[Таймер]
Точность сек=1с
OnCalendar=*-*-* 09:00:00 %I
[Установить]
WantedBy=timers.target
Второй шаблон сервиса — это общий сервис для всех включенных часовых поясов, также есть возможность создать конкретный сервис для часового пояса с разными наборами свойств.
# файл: часовой пояс@.service
[Ед. изм]
Description=Сервис для часового пояса %I
[Оказание услуг]
Окружающая среда=TZ=%I
ExecStart=/bin/date +"%I: %%a %%e %%b %%Y %%H:%%M:%%S %%Z"
StandardOutput=append:/tmp/timestamp.log
Теперь вы можете начать добавлять свои часовые пояса.
systemctl enable --now 'timezone@Europe\x2fLondon.timer' 'timezone@Europe\x2fStockholm.timer' 'timezone@Europe\x2fHelsinki.timer'