發現空間是足夠的,然后df -i 查看了下inodes,發現根目錄下的inodes值使用率為100%了
解決方法:通過以下腳本進行檢查,查看到底哪個目錄下面的文件最多:
find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
最終發現/var/soppl目錄最多。然后又進一步確定是/var/spool/amavisd/quarantine 目錄下面有上百萬個文件,機器已經無法正常顯示了,后來百度查看了下這個目錄是郵件服務器,處理垃圾郵件活病毒郵件隔離的,明白原因了,刪除該目錄下所有文件;使用xargs命令來刪除數量比較多的文件:
ls | xargs -n 10 rm -rf
天nagios報警,一台服務器的disk滿了,使用du -sh * 或 du -sh /* 查看目錄的大小,查找占用空間大的目錄/var/spool/clientmqueue....
然后我就想/var/spool/clientmqueue這個目錄干嘛用的,糾結了半天,谷歌了下,原來/var/spool/clientmqueue是如果系統中有用戶開啟了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啟動所以就產生了這些文件。
服務器上確實有cron定時執行數十個腳本,而且都沒有設置輸出定向,日積月累的文件都被保存在/var/spool/clientmqueue目錄下面樂 = =.
解決方法:在cron的自動執行語句后加上> /dev/null 2>&1
例:
4 3 * * * /usr/bin/w > /dev/null 2>&1
這樣就OK拉,就不會寫到那個目錄下了....
在這里說一點,/var/spool/clientmqueue目錄文件太多,rm -rf *時候會提示:
“-bash: /bin/rm: Argument list too long“..
意思是參數太長,rm 干不了。
可以用ls | xargs rm -f這個命令將/var/spool/clientmqueue目錄下所有文件刪除。