故障现象:
通常会发现磁盘写不进文件,但是查看df -h查看磁盘空间又存在剩余空间,这个时候需要执行df -ih会发现磁盘的inode比较满,例如:
解决方法:
1、查看当前用的最多的磁盘上各目录中的文件数
for i in /*; do echo $i; find $i | wc -l; done
2、找到站用最多的文件数的文件夹,然后再利用步骤1中的命令,去对应的目录中执行,例如/var下的文件最多,则命令如下:
for i in /var/*; do echo $i; find $i | wc -l; done
3、然后按照这个步骤一层一层找到对应目录包含文件最多的,进入其目录下,如果是不必要的文件,即可删除。
4、在我们日常运维过程中,往往文件数最多的是/var/spool/postfix/maildrop这个目录,这个目录中的文件是包含了crontab在执行任务的时候,通过postfix发送日志到cron用户的记录,如果发送失败,会生成一个记录文件到这个目录下。
通常我们通过如下命令来删除:
find /var/spool/postfix/maildrop/ -name ‘*’ | xargs rm -rf
5、确保crontab不再发送这样的邮件,更改crontab文件/etc/crontab,让不要发送邮件给root。命令如下:
sed -i ‘s/MAILTO=root/MAILTO=\”\”/g’ /etc/crontab
执行之后,需要重启下cron任务:
service crond restart
6、也可以定时删除一周前的记录:
find /var/spool/postfix/maildrop/* -mtime +7 -type f |xargs rm -rf
加入计划任务每天执行一次。