![对一个 cron 作业使用不同的时区?](https://linux22.com/image/216616/%E5%AF%B9%E4%B8%80%E4%B8%AA%20cron%20%E4%BD%9C%E4%B8%9A%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E6%97%B6%E5%8C%BA%EF%BC%9F.png)
我在一个 crontab 中有多个 cron 作业(像往常一样)。其中一项作业与另一个时区的远程系统交互,这意味着每次时区进入或退出夏令时时我都需要调整 crontab。
我知道我可以设置CRON_TZ
控制 cron 使用的时区全部工作,但有没有办法为其中一个设置不同的时区?
明显的想法包括:
- 有一个 cron 作业来更新你的 crontab。
- 拥有一个具有不同默认时区的单独用户,仅用于运行那些 TZ 敏感作业。
两者看起来都有点老套。还有更好的解决方案吗?
答案1
使用 systemd 计时器,您可以将传统的 Cron 作业定义为计时器,它会遵守OnCalendar=
规范,并且可以包含时区。
关于从 cronjobs 切换的上述障碍:至少重复时间事件规范允许基本相同的功能;所以这对于迁移来说是件好事。我不知道是否有一个转换工具只需要 crontab 行并将它们转换为 systemd 计时器单位,但我可以很好地想象它是存在的。