2021年11月8日 星期一

Linux | crontab debug除錯

        明明單獨跑指令時可以正常執行,但加入crontab跑排程卻失敗,來看這篇的人應該都是有這樣的問題,debug最重要的就是看LOG, LOG, LOG, 也就是日誌,這邊就講幾個基本除錯的方法。

步驟一:檢查服務有沒有正確啟動


如下圖用 # ps aux | grep cron 或是 service cron status先確定cron是正常的


步驟二:檢查cron日誌有沒有執行腳本


可以使用# journalctl  -u cron.service查看如下圖,可以看到紅色框框的部分有照預定的時間執行排程

也可以用less查看日誌 less /var/log/syslog | grep cron | more (ubuntu) , less /var/log/message | grep cron | more (CentOS, RHEL)

步驟三:將執行排程的結果輸出


如果在步驟二看排程都有正確的被執行,那就要看排程執行完輸出的結果是如何,在command的後面加上要輸出的路徑,我測試環境適用ubuntu是使用第三個去除錯,跑完後就去/tmp/output.log執行的結果如何,在依照內容去除錯

*/5 * * * /path/to/your/command &> /tmp/output.log
*/5 * * * /path/to/your/command > /tmp/output.log 2>&1
*/5 * * * /path/to/your/command 2>/tmp/testlog.log


結論


依照上面三個步驟就可以很容易查出問題在哪,重點是要用心看log給的資訊,答案就在log中,而且大部分都很容易解決。




沒有留言: