Cron

每 5 分鐘 Cron 多個腳本,每個腳本之間間隔 10 秒

  • September 25, 2020

我有幾個文件設置crontab,所有這些腳本必須每 5 分鐘執行一次。

當這些腳本一次需要大量 CPU 和 IO 並且機器變得不可用時,問題就出現了。

為了減輕這種影響,我想知道是否可以選擇在每個腳本啟動之間放置 10 秒。當所有這些腳本有太多數據需要處理時,它應該利用我們發出的顯著負載提升(單核超過 40 個)。

是否可以在 crontab 中以某種方式每 5 分鐘安排一次腳本,而不是從所有腳本的第 5 分鐘開始?

創建一個 cron 條目,即:

*/5 * * * * processA ; sleep 10 ; processB ; sleep 10 ; process C

但是,我建議不要這樣做。

我根本不會使用 cron。Cron 沒那麼聰明。如果您告訴它每 5 分鐘執行一次作業,並且該作業需要 6 分鐘才能執行,那麼您將執行 2 個程序。到一天結束時,您將同時執行數十或數百個這樣的程序。

更安全的方法是不使用 cron。相反,執行這樣的腳本。使用 systemd 或 /etc/init.d 腳本將其轉換為始終執行的“服務”:

while true ; do
  processA
  sleep 10
  processB
  sleep 10
  processC
  sleep 600
done

可以在這裡找到更長的解釋:

如何不使用 Cron

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