1、问题描述
fastDFS上传文件之后返回的不是文件的路径,而是一个null。
于是对fastDFS进行重启,发现storage.d一直无法重启,进入/fdfs/storage/logs/目录查看报错日志,发现报no space left on device。于是随便找一个目录输入
touch text.txt
也是报no space left on device。基本可以确定是磁盘空间不足,
输入
df -h
发现磁盘空间是还够用,于是检查是否inode节点不够
df -i
inode节点用完了,因为是fastDFS文件服务器,怀疑图片小文件过多,于是删除/fdfs/storage/data目录下的文件。再次执行df -i 。发现inode节点仍然占用了93%.
2、查找问题目录
既然知道是inode节点用完了,那么就要可以搜索具体是哪里的小文件太多造成inode节点用完了。
可以通过遍历根目录下所有的目录,查看这些目录下的所有的文件,并计算文件的数量
for i in /*; do echo $i; find $i | wc -l; done
shell代码注释
#遍历/目录下所有的目录
for i in /*;
do
#打印当前目录
echo $i;
#列出当前目录下所有的文件与子目录,并计算数量
find $i | wc -l;
done
如果这一步执行的比较慢,也可以一个目录一个目录的执行,不用循环执行。
最后定位到
/var/spool/postfix/maildrop
目录下有大量的文件,但是这个文件目录仅有65M。
对此目录下的大量小文件进行删除
cd /var/spool/postfix/maildrop/
ls | xargs rm -rf
3、参考文章
https://www.lastupdate.net/1617.html
https://www.todocker.cn/1265.html
https://blog.csdn.net/qq_41571056/article/details/106517424