如何排查 Inodes 使用太多的问题

当碰到服务器 Inodes 报警,排查流程以下node

操做系统环境:Centos6.8vim

1、使用 df -i 查看那个分区用量最多

  • 这样就先定位到了问题分区

2、进入该分区,使用文件数量统计脚本

#文件数量统计脚本

#!/bin/bash

for i in `ls`;
do
  file_num=`find ./$i/ -type f -print | wc -l`
  echo "$i,$file_num"
done
  • 这个脚本会统计出当前目录下的每一个目录有多少个文件,这样就能够找出文件最多的目录,而后层层排查,就能够定位到问题目录。

3、小量分批删除

ls | grep '^' | xargs -n 100 rm -f   #删除列出的文件,以100个为一组

# 使用这个指令是为了不 "argument list too long "
  • 最后不要忘记了排查问题的缘由

最后分享下笔者遇到问题

  • 我用上诉方法排查出 /var/spool/postfix/maildrop/ 有大量文件

缘由是系统在执行 cron 任务时,会将 cron 执行脚本中的输出信息(output)和告警信息(warning)以邮件的形式发送给 cron 全部者,而个人服务器上关闭了 postfix ,致使邮件发送失败,小文件就堆积在了 maildrop 目录下。若是 sendmail 或 postfix 正常运行,则会在 /var/mail 目录下堆积大量的邮件文件。bash

  • 解决方法:修改 crond 配置文件
vim /etc/crontab
将 MAILTO=root 替换成 MAILTO="",须要重启crond服务才能够
相关文章
相关标签/搜索