防止竞争的 Crontab 作业依赖

Sex*_*yMF 7 ubuntu cron

我想每 5 分钟运行一次 cron,但如果前一个尚未完成,我不希望下一个 cron 运行。

关于这个还能做什么?是否有任何工具可以支持这一点?

谢谢

sci*_*rus 12

使用羊群

flock -n /path/to/lockfile -c "command_you_want_to_run"
Run Code Online (Sandbox Code Playgroud)


Res*_*ssu 5

您可以使用 run-one 命令。它会自动为正在运行的命令创建一个锁定文件。

run-one rsync -a mirror.kernel.org::everything /my/hd
Run Code Online (Sandbox Code Playgroud)

行为类似于 flock,但语法更清晰。缺点是您可能需要安装命令才能使用它。还有,在修改命令行的时候要特别注意,当命令行发生变化时,锁文件名也会发生变化