对一个 cron 作业使用不同的时区?

对一个 cron 作业使用不同的时区?

我在一个 crontab 中有多个 cron 作业(像往常一样)。其中一项作业与另一个时区的远程系统交互,这意味着每次时区进入或退出夏令时时我都需要调整 crontab。

我知道我可以设置CRON_TZ控制 cron 使用的时区全部工作,但有没有办法为其中一个设置不同的时区?

明显的想法包括:

  • 有一个 cron 作业来更新你的 crontab。
  • 拥有一个具有不同默认时区的单独用户,仅用于运行那些 TZ 敏感作业。

两者看起来都有点老套。还有更好的解决方案吗?

答案1

使用 systemd 计时器,您可以将传统的 Cron 作业定义为计时器,它会遵守OnCalendar=规范,并且可以包含时区。

关于从 cronjobs 切换的上述障碍:至少重复时间事件规范允许基本相同的功能;所以这对于迁移来说是件好事。我不知道是否有一个转换工具只需要 crontab 行并将它们转换为 systemd 计时器单位,但我可以很好地想象它是存在的。

相关内容