解決ubuntu下定時任務不執行問題


1、首先創建一個定時任務:每分鍾向屏幕輸出"Hello world!"。

有兩種實現方式:

1)輸入crontab -e命令,根據提示直接在當前cron task文本最后面插入如下命令(記得回車):

* * * * * echo "Hello world!"

2)由於每個用戶的定時任務都在/var/spool/cron/crontabs目錄下有個與用戶名一致的任務文件,因此也可以通過vim直接編輯:

sudo vim /var/spool/cron/crontabs/waterfronter             #注:waterfronter為當前用戶名

同樣在文件末行插入:

* * * * * echo "Hello world!"

保存退出,並通過crontab -l查看定時任務創建成功。

 

2、然后等待,若干分鍾后發現屏幕並未輸出"Hello world!"怎么回事?!

1)剛開始懷疑是cron服務沒有啟動,遂執行:

sudo service cron status

發現cron服務是running的,排除;

2)繼而懷疑是任務文件創建后未能被系統及時get到,因而執行:

sudo service cron restart

重啟cron后問題依舊,排除;

3)於是進一步查看cron運行日志(/var/log/cron.log),但是並未找到相關文件,原因是ubuntu默認沒有開cron日志,執行命令:

sudo vim /etc/rsyslog.d/50-default.conf

找到cron.log相關行,將前面注釋符#去掉,保存退出,重啟rsyslog:

sudo  service rsyslog  restart

執行less -10 /var/log/cron.log再次查看cron運行日志,log出來了,提示如下信息:

No MTA installed, discarding output

原因是cron把屏幕輸出都發送到email了,而當前環境並未安裝email server,於是系統報錯,解決方面就是不要直接向屏幕輸出內容,而是重定向到一個文件。

 

3、修改任務文件

sudo vim /var/spool/cron/crontabs/waterfronter

將末行改為:

* * * * * echo "Hello world!" >> /tmp/cron_log.txt

保存退出,同時reload cron服務:

sudo service cron reload

若干分鍾后查看/tmp/cron_log.txt,“Hello world!”每隔一分鍾輸出一次,問題解決。


免責聲明!

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



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