1. 程式人生 > >crontab定時任務不執行,並且沒有收到錯誤資訊郵件

crontab定時任務不執行,並且沒有收到錯誤資訊郵件

現象:

    crontab中定義的msqldump定時任務不能執行,沒有收到錯誤資訊郵件,檢視日誌/var/log/cron顯示如下

CROND[15777]: (root) MAIL (mailed 33 bytes of output but got status 0x0043#012)

解決過程:

1.將shell指令碼中的相對路徑改為絕對路徑,直接執行sh沒有問題,用crontab -e進行定時處理,仍然無法進行備份。 2.使用mail命令檢視root收到的郵件資訊,沒有新郵件提示。檢視/var/spool/mail的root檔案中的郵件資訊,發現裡面的資料沒有更新,cron的log檔案裡面描述的出錯資訊的郵件都應該傳送到上面說的root檔案中,由此判斷系統的郵件功能出現異常。 3.cd到/ect/rc.d/init.d

目錄,使用sendmail restart命令準備重啟一下mail服務,出現與“伺服器時間不一致”錯誤,找資料使用touch /etc/mail/*錯誤提示消失,有新的錯誤:

Starting sendmail: 451 4.0.0 /etc/mail/sendmail.cf: line 91: fileclass: cannot open '/etc/mail/local-host-names': World writable directory
451 4.0.0 /etc/mail/sendmail.cf: line 588: fileclass: cannot open '/etc/mail/trusted-users': World writable derectory [FAILED]

而後使用[[email protected] etc]# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue[[email protected] etc]# chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueuesendmail restart mail服務正常啟動,這樣我就可以看到我的cron日誌檔案中描述傳送的郵件(定時執行shell時產生的錯誤資訊)寫到/var/spool/mail的root檔案中了。 4.執行定時任務,郵件中的提示資訊為/usr/local/mysql/CollectionDataBackup/CollectionDataBackup.sh: line 55: mysqldump: command not found

查詢原因:由於mysqldump未安裝在PATH定義的目錄中。

將mysqldump路徑新增到PATH中。

SHELL=/bin/bash
PATH=/usr/local/mysql/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

5.再次定時執行,ok備份成功