無法清除 sendmail mqueue-client

無法清除 sendmail mqueue-client
drwxr-xr-x  2 smmsp smmsp  4.0K May  6 23:31 mqueue
drwxrws---  2 smmsp smmsp  29M May  8 10:40 mqueue-client

正如您所看到的,mqueue-client其中充滿了 29 MB 的未發送郵件。這似乎可能是由於向本機發送郵件的內部功能失敗所致。

我曾多次嘗試清除隊列,但沒有成功。結果是一個行程佔用了大量的 CPU 資源:

16287 smmsp     20   0 50212  44m 2416 R   85  4.4 965:35.45 sendmail-msp

我嘗試過終止進程、停止 sendmail 服務、刪除 mqueue-client 的內容,甚至切換到 smmsp 用戶。但沒有一個奏效。rm嘗試刪除郵件時掛起。

我怎麼才能清空這個隊列?

完成此操作後,我會將所有內容移至 Postfix。

答案1

正如 Janne 在評論中所建議的,我查看了我的syslog郵件,發現許多郵件未能發送錯誤,導致它們被推遲,從而堆積在mqueue-client文件夾中。

經過一番挖掘後發現定時任務設定為完成/通知/警告/錯誤時的郵件根目錄。透過發出crontab -e並添加MAILTO=""到配置頂部,不再發送郵件,問題解決了!

mqueue-client現在,我正在使用此 Bash 腳本清除大約 150 萬封不良電子郵件:

#!/usr/bin/env bash

cd mqueue-client

deleted=0

for i in `ls`
do
        rm -f $i
        percentage=$(bc <<< "scale=2; ($deleted / 1035435) * 100")
        ((deleted++))

        echo "Deleted $i. Files deleted $deleted. $percentage% complete."
done

使用以下命令從 /var/spool 運行./filename

更新

不幸的是,整夜運行此腳本後,郵件隊列並沒有顯著減少。這是因為我沒有停用設定為清除隊列的運行 CRON 的分鐘,但導致積壓的情況不斷增加。希望現在這已被禁用,一切都應該清楚了。

相關內容