我想每 5 分钟运行一次 cron,但是如果前一个 cron 尚未完成,我不希望运行下一个 cron。
对此该怎么办? 有没有什么工具可以支持这一点?
谢谢
答案1
使用群。
flock -n /path/to/lockfile -c "command_you_want_to_run"
答案2
您可以使用 run-one 命令。它会自动为正在运行的命令创建一个锁定文件。
run-one rsync -a mirror.kernel.org::everything /my/hd
行为与 flock 类似,但语法更清晰。缺点是可能需要安装命令才能使用。另外,修改命令行时应特别注意,当命令行更改时,锁文件名也会更改
答案3
Cron 不支持任何类型的作业依赖项。您放入其中的条目会在指定时间运行。
您必须采用一些简单的联锁方案。将给定的命令或命令集放入包含锁定方案的包装器脚本中。
或者像较大的站点那样,安装某种类型的作业调度应用程序并使用它有条件地运行应用程序。