linux 之crontab 定時執行失敗原因總結


今天寫了一個nginx日志分割的簡單腳本,發現手動執行腳本可以將日志成功分割,但是使用crontab定時任務就會執行失敗。

然后自己寫了一個只有一句話的shell腳本,發現一樣的問題,然后就開始根據問題找原因:

1:是不是crontab的權限不對。然后使用了 ls /etc/init.d/crontab -lh 查看權限。發現用戶組的對的,root組。

2:網上說很大可能的原因是環境變量的問題,然后,自己輸出了PATH的所有環境變量,然后加入到腳本開頭第二行的位置,依然不行。

3:查看crontab的執行狀態。/etc/init.d/cron status 發現定時在執行。

4:定時不使用腳本,直接在定時后面直接寫命令。發現是可以執行的,這就有點怪了。

手動執行腳本沒問題,定時執行腳本有問題。定時執行腳本命令沒問題。這是哪里出了問題呢?這說明腳本的白那些是沒有問題的,問題處在了crontab定時上,然后加了環境變量的的文件絕對路徑,抱着試一試的心態,結果真的成功了。具體操作如下:

*/1 * * * * /etc/profile /bin/sh path/test.sh

/etc/profile是加的環境變量的文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM