最近收到某臺服務器告警,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