Ubuntu系統下crontab的使用

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


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

接下來個人調試過程shell

(1)編輯加入本身的命令vim

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

*/1 * * * * /usr/bin/php   /var/send.php   每分鐘都執行一次服務器

send.php學習

編輯以下this

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

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

通過研究發現原來日誌服務器rsyslog沒有開啓對crontab的支持,接下來進入/etc/rsyslog.d/ 調試

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

找到 cron.* 所在行rest

#  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

 

更過的進階技術能夠關注公衆號:進階的腳步  回覆學習資料  有驚喜哦

相關文章
相關標籤/搜索