我正在运行以下 cron 作业
* * * * * date "+\%Y\%m\%dT\%H\%M\%S" > /path/to/log 2>&1
Run Code Online (Sandbox Code Playgroud)
但它运行了大约一秒钟为时已晚,因为它写道例如
20210817T210001
我如何确保 cron 作业将在整分钟内运行?
Art*_*ild 12
这也涵盖在Server Fault 中。
我个人喜欢这句话:“cron 可以保证你的工作不会早于指定时间开始。” 换句话说,cron 并不是真正设计为在手术上精确到秒。我自己的大部分 cron 作业也会在整整一分钟后的 01 秒甚至 02 秒开始。
为了启动 cron 作业,cron 将扫描在任何给定时间需要运行的作业。如果计划在 12:00:00 开始的作业实际上在 12:00:01 开始,这不是错误,因为 cron 初始化的时间量可能会有所不同,具体取决于多种因素。
如果您需要在确切的一秒触发“几乎”(感谢 Kevin),您应该寻找除 cron 之外的其他解决方案 - 例如systemd计时器(感谢 Andrej)、Python 脚本,甚至是为您监控时间的 C 程序。
编辑:或者(根据 Nonny Moose 的建议),您可以安排脚本提前一分钟运行,然后监控时间,以便在您希望它运行时尽可能精确地运行。
| 归档时间: |
|
| 查看次数: |
614 次 |
| 最近记录: |