2007年5月7日 星期一

如何解決 /var/spool/cilentmqueue 中有大量檔案無法刪除

/var/spool/clientmqueue 目錄是 smmsp:smmsp 使用者目錄,僅用於郵件的收受與傳遞,增加這個使用者是 sendmail 8.12 後新增,主要的目的在於提供更安全的 sendmail 使用環境。啟動Sendmail 程式之前,client 端寄出的信件會暫存到/var/spool/clientmqueue 中,因此如果系統沒有啟動 sendmail 時,/var/spool/clientmqueue 下所產生的檔案時間久了會灌爆系統的硬碟空間。

Unix系統預設有可用的MTA,將 sendmail完全停用而又不安裝其他 MTA 會導致非常多的問題,一些應用程式也會透過 email 傳送程式執行結果或通知,例如 crond。

出現這個問題主要在於系統沒有可用的 MTA,最大的原因是把系統的 MTA (例如:sendmail) 關閉了,卻沒有作適當的設定。如果是為了安全上的考量關閉 sendmail,可以使用限制連線的設定,而不要關閉 sendmail 比較好。

刪除 /var/spool/cilentmqueue 目錄中檔案的方法,可以使用

rm -rf /var/spool/cilentmqueue/*

有時因為 /var/spool/cilentmqueue 下檔案數量太多,而造成無法刪除,可以使用先刪除整個目錄再重建目錄

rm -rf /var/spool/cilentmqueue

mkdir /var/spool/cilentmqueue

chown smmsp.smmsp /var/spool/cilentmqueue

若是想保留之前應用程式發送的email訊息,可以將sendmail 啟動,sendmail 會自動處理/var/spool/cilentmqueue 未送出的email,處理完後/var/spool/cilentmqueue 自然清空。

沒有留言: