Linux Crontab 设置的定时任务没有启动的排查
1、先手動執行定時任務以此來判斷腳本是否有問題。
2、確認服務器是否開啟定時任務計劃服務
命令:service crond statusservice crond start- 1
- 2
3、檢查定時任務配置的語法
crontab -lSHELL=/bin/bash0 15 * * 1-5 cd /root/ye/project/StatShareDataProject/&& ./start.sh- 1
- 2
- 3
- 1
- 2
4、?查看crontab執行記錄
如果出現了crontab定時任務不執行的情況,首先需要定位問題,那么就需要通過日志來確定問題所在。
crontab的日志位置一般位于/var/log/cron,利用下面的語句即可查看日志。
tail -f /var/log/cron- 1
上面的/var/log/cron只會記錄是否執行了某些計劃的腳本,但是具體執行是否正確以及腳本執行過程中的一些信息linux會通過郵件形式發送到給該用戶。?
對于root用戶該郵件記錄位于/var/spool/mail/root,通過以下命令可以查看最近的crontab執行情況。
- 1
mail郵件一般只會記錄腳本執行成功與否,如果執行失敗,無法給出進一步的錯誤信息,這時需要我們將語句執行的錯誤信息重定向至文件中,這樣可以很方便的查看錯誤信息。下面就給出了一個簡單的例子
0 6 * * * /root/script/ss.sh >> /root/for_crontab/mylog.log 2>&1- 1
上述語句表示把錯誤輸出和標準輸出都輸出到mylog.log中,在執行的時候會將命令執行的相關信息記錄至mylog.log文件中。
- 注:通過定時任務執行的程序需要手動將其 stop 掉(就算該程序手動執行只需要幾秒就可執行完了,但是通過crontab設置成定時任務執行時,其執行后將一直占有著該線程,并且不會因為程序跑完了就自動停止該線程),要不然在下次再執行時會發現原先的程序還在執行中。
- 增加了crontab任務后,在/var/spool/cron目錄下會有一個當前登錄賬號命名的文件。比如我的登錄賬號是root。則會存在一個root文件。該文件的內容就是剛添加的crontab任務。
常見錯誤一:?
定時任務配置好后,正常執行,但是執行過程中出現如下錯誤
- 1
解決方法:?
往執行腳本中添加如下命令便可,這是因為cron并沒有加載java相關的配置文件,所以我們需要在腳本中手動將其加入。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
遇到的一個坑:?
定時任務如下:?
crontab -e
- 1
- 2
手動執行正常,但是定時任務執行出錯,具體錯誤如下所示:
/bin/sh: root: command not found- 1
按照網上各種方法試過之后發現還是報一樣的錯。?
因此筆者將/var/spool/cron/root 文件刪除掉,重新設定時任務,竟然神奇地可以正常執行了。原理還沒想通,不過至少可以正常執行了….
來源:https://blog.csdn.net/u013850277/article/details/54344805
總結
以上是生活随笔為你收集整理的Linux Crontab 设置的定时任务没有启动的排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 但愿人长久千里共婵娟是什么意思(但愿人长
- 下一篇: 霍思燕老公(说一说霍思燕老公的简介)