【发布时间】:2021-02-06 16:58:26
【问题描述】:
是否可以让 crontab 在执行后运行。我读到 cron 作业从顶部开始,但并行运行,不等待一个完成。 我有什么办法可以这样做吗? 例如,假设我有 3 个 cron 作业。
-
*/5 * * * * job1 */5 * * * * job2*/5 * * * * job3
我希望job2在job1完成后运行,job3在job2完成后运行。
【问题讨论】:
是否可以让 crontab 在执行后运行。我读到 cron 作业从顶部开始,但并行运行,不等待一个完成。 我有什么办法可以这样做吗? 例如,假设我有 3 个 cron 作业。
*/5 * * * * job1
*/5 * * * * job2*/5 * * * * job3我希望job2在job1完成后运行,job3在job2完成后运行。
【问题讨论】:
您可以在单个 crontab 条目中包含多个命令:
*/5 * * * * job1 ; job2 ; job3
【讨论】:
如果您想在 /etc 中使用全局 crontab,它会更简单。 主要的 crontab 文件是 /etc/crontab。它包含这种类型的指令:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
所以 Linux 使用 run-parts; run-parts 按字母顺序启动命令,因此只需在脚本中添加数字,如下所示:
等等...请避免使用点或其他不合法的字符:
【讨论】: