背景:
腳本手動執行可以,放到crontab任務裏執行卻失敗。
問題及解決方法
問題1:這樣的任務都無法執行
*/10 * * * * /usr/local/bin/python /tmp/test_all.py &> /tmp/result/$(date +"%m%d-%H%M").txt
*/10 * * * * /usr/local/bin/python /tmp/test_all.py &> /tmp/result/`date +"%m%d-%H%M"`.txt
解決方法:%前面需要加 \,即:
*/10 * * * * /usr/local/bin/python /tmp/test_all.py &> /tmp/result/$(date +"\%m\%d-\%H\%M").txt
*/10 * * * * /usr/local/bin/python /tmp/test_all.py &> /tmp/result/`date +"\%m\%d-\%H\%M"`.txt
問題2:修改系統時間後任務不執行
解決方法:重啓crond服務
問題3:環境變量,crontab本身缺少環境變量
解決方法:腳本中使用souce或expect激活環境變量
問題4:路徑問題,腳本或計劃任務中攜帶相對路徑
解決方法:將腳本和計劃任務中攜帶相對路徑改成絕對路徑
問題5:腳本本身沒有執行性權限
解決方法:chmod +x 賦予腳本執行權限。