Ubuntu系統下crontab的使用


最近一個項目,需要用到一個定時任務,先說crontab的常用命令。


crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務

接下來我的調試過程

(1)編輯加入自己的命令

crontab -e  //編輯某個用戶的cron服務

*/1 * * * * /usr/bin/php   /var/send.php   每分鍾都執行一次

send.php

編輯如下

<?php
    echo 'this is a work';
?>

沒有出現運行結果,於是乎,就去查看日志,結果在/var/log下沒有發現 cron.log文件,這我就納悶了,why?

經過研究發現原來日志服務器rsyslog沒有開啟對crontab的支持,接下來進入/etc/rsyslog.d/ 

cd /etc/rsyslog.d/
ls
20-ufw.conf  50-default.conf //會有連個文件
vim 50-default.conf
編輯如下:

找到 cron.* 所在行

#  Default rules for rsyslog.
#
#            For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*            /var/log/auth.log
*.*;auth,authpriv.none        -/var/log/syslog
cron.*                /var/log/cron.log
#daemon.*            -/var/log/daemon.log
kern.*                -/var/log/kern.log
#lpr.*                -/var/log/lpr.log
mail.*                -/var/log/mail.log
#user.*                -/var/log/user.log

去掉前面的#。ok,接下來 使用命令cron restart重啟,啊喲,報錯了,

cron: can’t lock /var/run/crond.pid, otherpid may be

解決方案:

rm /var/run/crond.pid
ps -A | grep cron
kill 進程ID

然后繼續 cron restart,Ok了,但是還沒還結果,現在我們可以看看日志啦。

tail /var/log/cron.log

發現錯誤如下:

 (CRON) info (No MTA installed, discarding output)

出錯原因:

報錯的主要原因是沒有配置郵件服務器.

有兩個原因會導致這個錯誤發生:

 1,當你執行命令是shell腳本時

  解決方案:在每條命令后面加上:

  >/dev/null 2>&1

 2,當你向窗口輸出時,因為內容的輸出是cron通過郵件發送的

  解決方案:將輸出內容導入一個文件 >> /tmp/test.txt

 

更過的進階技術可以關注公眾號:進階的腳步  回復學習資料  有驚喜哦


免責聲明!

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



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