cron 中的多个连续命令

cron 中的多个连续命令

我读到了以下内容在单个 cron 作业中运行多个命令的 2 种方法

我们可以在同一个 cron 作业中运行多个命令,并用分号 (;) 分隔它们。

* * * * * /path/to/command-1; /path/to/command-2

如果运行的命令相互依赖,我们可以在它们之间使用双与号(&&)。因此,如果第一个命令失败,则不会执行第二个命令。

* * * * * /path/to/command-1 && /path/to/command-2

我的要求是:

  • 命令必须按顺序执行(等待当前命令完成后再执行下一个命令)
  • 命令必须按照给定的顺序执行
  • 但每个命令都应该执行,即使前一件事失败了

因此上面的链接没有说的是:

分号;方法是否仍然保证命令将按给定的顺序顺序执行?

答案1

是的,在命令之间使用;将保证所有命令都按顺序运行,一个接一个。一个命令的执行不依赖于前一个命令的退出状态。

正如 Paul_Pedant 所指出的在评论中,做任何比从 crontab 启动单个命令更复杂的事情,最好通过在单独的脚本中收集作业并计划该脚本来完成。这样,您就可以独立于 cron 来测试和调试脚本,尽管由于 cron 为您提供的环境与普通登录​​ shell 环境略有不同,但仍然存在环境因素(例如当前工作目录是什么以及$PATH其他值是什么)变量等)要记住。

相关内容