一次inodes佔用過多問題的解決

最近收到某臺服務器告警,inodes使用過高,解決過程如下
首先在服務器上執行下面的命令查看哪個目錄下inodes使用過高

[root@vm]# df -i
Filesystem              Inodes  IUsed     IFree IUse% Mounted on
/dev/mapper/VGSYS-lv_root
                        655360 101872    553488   16% /
tmpfs                  2041469      1   2041468    1% /dev/shm
/dev/vda1                51200     38     51162    1% /boot
/dev/mapper/VGSYS-lv_var
                        655360 569533     85827   87% /var
/dev/mapper/VGSYS-lv_srv
                     104644608   1727 104642881    1% /srv
/dev/mapper/VGSYS-lv_vfs
                      52428800      7  52428793    1% /srv/docker/vfs
/dev/mapper/VGSYS-lv_log
                      31457280    207  31457073    1% /var/log

可以發現/var目錄下inodes使用最大,使用下面的腳本進一步查找

[root@vm]# for i in /var/*; do echo $i; find $i | wc -l; done
/var/account
2
/var/cache
98
......
/var/spool
587003
/var/tmp

通過這個方法,最終發現是/var/spool/postfix/maildrop目錄下小文件過多。
通過上網搜索,原因如下:

是由於linux在執行cron時,會將cron執行腳本中的output和warning信息,都會以郵件的形式發送Cron所有者,  
而由於客戶環境中的sendmail和postfix沒有正常運行,導致郵件發送不成功,全部小文件堆積在了maildrop目錄 
下面,而且沒有自動清理轉換的機制,所以此目錄堆積了大量的文件

進入/var/spool/postfix/maildrop路徑,使用ls | xargs -n 10 rm -rf將文件清楚,問題得以恢復。

根本解決方法
vi /etc/crontab
將MAILTO=root替換MAILTO="",然後service crond restart即可。如不行crontab -e 第一行增加MAILTO=""
————————————————
版權聲明:本文爲CSDN博主「github_25679381」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/github_25679381/article/details/53503527

發佈了22 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章