Cron

cron 中的多個順序命令

  • December 10, 2019

我閱讀了以下兩種在單個 cron 作業中執行多個命令的方法

我們可以在同一個 cron 作業中執行多個命令,方法是用分號 (;) 分隔它們。

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

如果執行的命令相互依賴,我們可以在它們之間使用雙與號 (&&)。因此,如果第一個命令失敗,則不會執行第二個命令。

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

我的要求是:

  • 命令必須按順序執行(等待目前命令完成後再執行下一個命令)
  • 命令必須按給定的順序執行
  • 但是每個命令都應該被執行,即使前一個命令失敗了

因此,上面的連結沒有說的是:

分號;方法是否仍然保證命令將按給定順序按順序執行?

是的,;在命令之間使用將保證所有命令按順序執行,一個接一個。一個命令的執行將不依賴於前一個命令的退出狀態。

正如 Paul_Pedant在評論中指出的那樣,做任何比從 crontab 啟動單個命令更複雜的事情可能最好通過在單獨的腳本中收集作業並安排該腳本來完成。這樣,您可以獨立於 cron 測試和調試腳本,儘管由於 cron 為您提供的環境與您的普通登錄 shell 環境略有不同,但仍然存在環境因素(例如目前工作目錄是什麼以及它的值是什麼$PATH等)變數等)要記住。

引用自:https://unix.stackexchange.com/questions/555327