发现问题:
监控中某个站点check_disk会报警,查看发现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、然后按照这个步骤一层一层找到对应目录包含文件最多的,进入其目录下,如果是不必要的文件,即可删除。 例如蔡甸热线排查出这个目录下文件数最多/var/spool/postfix/maildrop,这个目录中的文件是包含了cron再执行任务的时候,通过postfix发送日志到cron用户的,如果发送失败,文件则进入这个目录下。
删除方法1: - find /var/spool/postfix/maildrop/ -name '*' | xargs rm -rf
复制代码
删除方法2:
- mkdir /tmp/empty/
- nohup rsync --delete-before -rlptvD /tmp/empty/ /var/spool/postfix/maildrop/ > /tmp/rsync.log 2>&1 &
复制代码
理论上来说通过rsync删除速度更快,加上nohup在后台删除。
4、更改crontab文件/etc/crontab,让不要发送邮件给root。命令如下: - sed -i 's/MAILTO=root/MAILTO=""/g' /etc/crontab
复制代码
执行之后,重启下cron任务,命令如下: 5、清除一周的记录: - find /var/spool/postfix/maildrop/* -mtime +7 -type f |xargs rm -rf
复制代码
|