crontab不能正常執行的五種原因
1 crond服務未啟動
crontab不是Linux核心的功能,而是依賴一個crond服務,這個服務可以啟動當然也可以停止。如果停止了就無法執行任何定時任務了,解決的方法是開啟它:
crond
或
service crond start
如果提示crond命令不存在,可能被誤刪除了,CentOS下可以通過這個命令重新安裝:
yum -y install crontabs
2 許可權問題
比如:指令碼沒有x執行許可權,解決方法:
增加執行許可權,或者用bash abc.sh的方法執行
linux執行:
#/usr/local/php/bin/php test.php |
3 路徑問題
有的命令在shell中執行正常,但是在crontab執行卻總是失敗。有可能是因為crontab使用的sh未正確識別路徑,比如:以root身份登入shell後執行一個/root/test.sh,只要執行
./test.sh
就可以了。但是在crontab中,就會找不到這個指令碼,比如寫完整:
/root/test.sh
4 時差問題
因為伺服器與客戶端時差問題,所以crontab的時間以伺服器時間為準。
5 變數問題
有時候命令中含有變數,但crontab執行時卻沒有,也會造成執行失敗。