crontab 中的條件區塊

crontab 中的條件區塊

是否可以在使用者的 crontab 中放入「if」語句,或者是否有其他合理的方法來組織大量條件 cron 作業?從最終用戶的角度來看,如果他們可以使用普通的 crontab 並在可能的情況下將其條目放在兩行之間,那將是最簡單的。

理想情況下是這樣的:

if [ something ]; then
* * * * * /usr/bin/php /path/to/file.php
0 0 * * * /usr/bin/php /path/to/file2.php
*/5 * * * * /root/script.sh
fi

答案1

精確地做到這一點是不可能的。

但是,您可以做的是製作一個類似/usr/local/bin/check_live- 如果伺服器目前處於活動狀態則以狀態代碼 0 退出的腳本,如果伺服器目前不活動則以非零狀態代碼退出。

然後你可以有 crontab 行,例如:

* * * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file.php
0 0 * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file2.php
*/5 * * * * /usr/local/bin/check_live && /root/script.sh

答案2

我不建議將其放入 crontab 檔案中。相反,建立一個腳本,在其中設定條件,然後將其放入 crontab 檔案中。您將擁有更乾淨且井井有條的設定。

相關內容