2013-09-30 35 views

回答

0

不知道我明白這個問題,這是3個不同的cron條目,還是三個腳本共享相同的cron條目?對於後者(三個腳本一個cron項),這樣做(對於cron運行每分鐘):如果在bash成功

 
* * * * * /bin/bash script.sh && /usr/bin/php script.php && /usr/bin/python script.py 

的PHP將只運行。同樣,只有當bash和php腳本都成功時,python纔會運行。如果您需要運行所有腳本(無論其中一個失敗),請讓每個作業從它們自己的cron條目運行。在這種情況下,請執行以下操作:

 
* * * * * /bin/bash script.sh 2>>/var/log/script.sh.errors && echo "Bash Completed Successfully" >>/var/log/script.sh.success 
* * * * * /usr/bin/php script.php 2>>/var/log/script.php.errors && echo "PHP Completed successfully" >>/var/log/script.php.success 
* * * * * /usr/bin/python script.py 2>>/var/log/script.py.errors && echo "Python Completed successfully" >>/var/log/script.py.success 

在第二個示例中,錯誤記錄到單獨的文件。即使存在錯誤(例如,如果腳本實際上在其末尾具有退出0語句),腳本也可以返回退出代碼0(即「成功」)。因此,最好在腳本運行時嘗試捕獲錯誤,然後捕獲成功退出代碼(如果它成功退出)。

+0

這些是cron選項卡中的單獨腳本條目。腳本不依賴。我只需要檢查一下,在執行時,我附加到crontab的腳本是否沒有提供任何錯誤。這樣,如果cron選項卡中的腳本提供了任何錯誤,我可以立即刪除它們,而不是讓它們繼續執行錯誤。 所以根據你的第二個解決方案,我需要在日誌文件內部記錄錯誤,讀取日誌文件中是否有錯誤?謝謝 ! –