1. 程式人生 > >磁碟空間迅速被寫滿,造成linux應用程序停止執行解決辦法

磁碟空間迅速被寫滿,造成linux應用程序停止執行解決辦法

磁碟空間迅速被寫滿,造成linux應用程序停止執行;

大量sendmail程序和Inodes寫滿的解決 

解決過程:

  清理了部分空間想先恢復ITM,但是發現磁碟空間迅速被寫滿,檢視程序有6000+的sendmail在跑,free -m看系統記憶體被耗盡,檢視並沒有sendmail服務和postdrop服務,於是批量kill掉sendmail

ps -ef|grep "/usr/sbin/sendmail"|grep -v grep |awk '{print $2}'|xargs kill

系統性能恢復正常,過一會兒sendmail又每分鐘增加一個程序的出現,經過查詢,解決辦法是crontab首航增加:MAILTO="",經過觀察sendmail問題解決;但是crontab -e仍然提示/tmp無法建立新檔案;

通過檢視/tmp並沒有mount(如果是單獨mount的,可以unmout -l /tmp來解決),是佔用的系統資源,df -i檢視磁碟inodes 佔用100%,系統仍然不正常;需要刪除一部分檔案來釋放inodes,通過下面命令查詢各目錄下檔案數量:

for i in /*; do echo $i; find $i |wc -l|sort -nr; done

首先sendmial會在下目錄:/var/spool/postfix/maildrop/ 產生大量檔案,可直接刪除,但是檔案數量過多時,會報錯:-bash: /bin/rm: 引數列表過長,解決辦法:

cd /var/spool/postfix/maildrop/

find . -name "*" | xargs rm -rf 

刪除指定大小的檔案:

find . -name "*" -type f -size 0c | xargs -n 1 rm -f 

以此類推,清理可刪除的檔案清理inodes

系統恢復正常。