天天看點

linux中crontab定時任務導緻磁盤滿和雲監控未報警的的坑

作者:蜜蜂大蝦

linux中crontab定時任務,導緻磁盤滿和雲監控未報警的問題的坑。

1.磁盤滿

使用指令

df -h           
linux中crontab定時任務導緻磁盤滿和雲監控未報警的的坑

2.問題排查

2.1排查日志 指令

cat /var/log/messages           

日志檔案的預設路徑是:/var/log

下面是幾個重要的日志檔案的路徑及其包含的資訊:

/var/log/syslog:它和/etc/log/messages日志檔案不同,它隻記錄警告資訊,常常是系統出問題的資訊。

/var/log/messages:包括整體系統資訊,其中也包含系統啟動期間的日志。此外,還包括mail,cron,daemon,kern和auth等内容。

/var/log/cron 用來記錄任務計劃的運作日志,如下,分别表示:

任務運作的日期與時間 、在哪台主機上運作 、運作任務的程式[程序号] 、任務運作的具體資訊

/var/log/user.log:記錄所有等級使用者資訊的日志。

/var/log/auth.log:包含系統授權資訊,包括使用者登入和使用的權限機制等。

/var/log/daemon.log:包含各種系統背景守護程序日志資訊。

/var/log/kern.log:包含核心産生的日志,有助于在定制核心時解決問題。

一直有提示錯誤提示:No configuration file found at /root/.esmtprc or /etc/esmtprc

2.2 進入根目錄檢視目錄大小

cd /
du -sh *

使用這個指令,可以檢視隐藏的  ls -la           
linux中crontab定時任務導緻磁盤滿和雲監控未報警的的坑

2.3結果

cron中執行的程式有輸出内容,輸出内容會以郵件形式發給cron的使用者,而sendmail沒有啟動是以就産生了root/.esmtp_queue/ 目錄下的那些檔案,日積月累可能撐破磁盤。

3.解決方法

3.1 删除不用的檔案

可以參考已這個文檔:Linux伺服器清理磁盤

3.2 永久解決

設定MAILTO參數為空

方法一:

vim /etc/crontab
将 MAILTO=root 替換成  MAILTO=""           

方法二:

crontab -e 
 第一行加上MAILTO=""(指定郵箱發送位置)           

然後 重新開機 service crond restart

另外一個坑:開了磁盤報警功能,達到預警值了。結果沒有消息通知。

linux中crontab定時任務導緻磁盤滿和雲監控未報警的的坑

後面阿裡雲排查,說需要主機監控這裡要是運作中才行。

linux中crontab定時任務導緻磁盤滿和雲監控未報警的的坑

繼續閱讀