Рейтинг:1

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

флаг cn

Я хочу изменить часовой пояс, в котором выполняются задания cron, но оставить остальную часть системного часового пояса по умолчанию. Это возможно?

я читал эту статью https://linuxhint.com/set-timezone-crontab/

но я думаю, что это не влияет на выполнение задания. Он просто указывает, какой часовой пояс должен использоваться процессом после запуска cron.

waltinator avatar
флаг it
Это похоже на проблему XY. Почему нельзя отредактировать crontab и изменить там время?
nicholas avatar
флаг cn
Я не могу. Трудно дать вам контекст для этого. Моя задача - изменить часовой пояс заданий cron.
bac0n avatar
флаг cn
Я думаю, вы можете использовать ```CRON_TZ```. но я не думаю, что вы можете изменить TZ на отдельных записях.
waltinator avatar
флаг it
Что вы имеете в виду? Изменить время запуска задания cron (отредактируйте crontab) ИЛИ убедите задание cron, что оно запускается до установленного срока (отредактируйте crontab, установите TZ= для задания)? Прочтите `man -a crontab`.
Рейтинг:3
флаг cn

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'

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.