我有一个 rsync 的 cronjob,每 2 分钟运行一次,但有时需要超过 2 分钟的时间。为此,我编写了一个简单的锁定系统来检查,如果找不到文件则写入锁定文件,采取行动并删除该锁定文件。
现在,如果脚本因某种原因崩溃或被杀死,锁定文件将持续存在并导致问题。
确保 cron 任务在某个时候再次运行的好方法是什么?我想过检查锁定文件的年龄,如果超过某个时期就删除它,但我认为应该有更好更优雅的解决方案。
编辑:
我现在已经实施了羊群。我对为什么文件似乎总是存在感到有点困惑,但我发现这个页面通过将 pid 存储在文件信息中来解释它是如何工作的:
http://mattiasgeniar.be/2012/07/24/prevent-cronjobs-from-overlapping-in-linux/