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

2022-07-19 16:15:17 浏览数 (2)

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

操作系统环境:CentOS6.8

一、使用 df -i 查看那个分区用量最多 •这样就先定位到了问题分区

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

#文件数量统计脚本

#!/bin/bash

for i in `ls`; do   file_num=`find ./$i/ -type f -print | wc -l`   echo "$i,$file_num" done

•这个脚本会统计出当前目录下的每个目录有多少个文件,这样就可以找出文件最多的目录,然后层层排查,就可以定位到问题目录。

三、小量分批删除

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 目录下堆积大量的邮件文件。 •解决方法:修改 crond 配置文件

vim /etc/crontab 将 MAILTO=root 替换成 MAILTO="",需要重启crond服务才可以

0 人点赞