CROND出錯導致/var/spool/postfix/maildrop/堆積

前一段時間遇到的系統故障,以下是操作過程:

大晚上收到該服務器內存超高告警,ps aux發現有大量的/usr/sbin/sendmail進程,一開始將其kill掉:

ps -ax | grep sendmail | awk '{print $1}' | wc –l 統計了以下有1230個

ps -ax | grep sendmail | awk '{print $1}' |xargs kill –9 殺掉這些進程

但過一段時間,問題仍然出現,同時還有/var目錄磁盤使用情況超高。

使用du –sh *直接卡死,這說明/var/下有目錄文件太多,感覺和上次的/usr/sbin/sendmail進程有關係,最後查詢是/var/spool/postfix/maildrop/裏堆積了大量文件,同時無法刪除,但問題是該服務器上沒有運行sendmail或postfix服務,爲什麼會有大量的sendmail進程出現?再ps aux查看除了senmail還有CRON和postdrop大量進程

CROND 1231

/usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t  -f root 1230

/usr/sbin/postdrop -r 1232

三個進程數大概相同,再查詢crontab計劃任務

最後找出原因是計劃任務出錯

* */1 * * *  /usr/sbin/ntpdate time1.XX.XX 是這個計劃任務有問題

time1.XX.XX 是之前的ntp server地址,後來ip變了,導致crond出錯。

而crond在執行腳本時會將保持信息以郵件的形式發送給crond用戶,而環境的postfix沒有正常運行,導致郵件發送失敗,都會堆積在/var/spool/postfix/maildrop/目錄中,(可以在crontab中第一行增加MAILTO=""發送爲空)

問題原因找到了,下面是操作過程:

1,更改正確的crontab

echo * */1 * * * /usr/sbin/ntpdate time2.XX.XX> /var/spool/cron/root

2,kill掉出錯的進程

ps -ax | grep sendmail | awk '{print $1}' |xargs kill –9

ps -ax | grep CROND | awk '{print $1}' |xargs kill –9

ps -ax | grep postdrop | awk '{print $1}' |xargs kill –9

3,刪除/var/spool/postfix/maildrop/裏的文件

yum install rsync 
mkdir /tmp/test 
rsync --delete -a -H -v --progress --stats /tmp/test/ /var/spool/postfix/maildrop/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章