问题场景
1、网站无法上传文件,网站访问报错,缓存文件无法生成。
2、网站SESSION莫名其妙失效。
3、操作数据库查看表结构出现类似的报错
can not create to file /tmp/xxx Errcode:28
都有可能是/tmp缓存文件无法创建。
可能出现的原因
1、磁盘已满。可以用df -TH命令进行查看。
2、索引节点已满。可以用df -i命令进行查看。
代码语言:javascript复制df -i
上图所示的结果分析,系统盘的索引节点inode已达到100%,系统运行出现故障。
索引节点已满的排查解决方案
1、 查看根路径下各个文件夹的文件数
代码语言:javascript复制for i in /*; do echo $i; find $i |wc -l|sort -nr; done
以上代码中,/*表示在根目录查找,结果会列出每个文件夹占在用的节点数量,可以情况逐步分析。
如发现var文件夹内容过多,可以cd进入var目录再执行,只需将对应路径进行修改即可。
代码语言:javascript复制cd var
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
举例说明,假如通过反复排查,发现/var/spool/postfix/maildrop/下有180W 文件。解决方法就是进入到对应目录中,删除对应文件夹下的文件,但执行rm -rf ./* 通常会报错,提示参数列表过长。原因是文件太多了。
换种方式进行删除,如下所示,但一定要注意,先cd到需要删除的目录下,然后再执行删除操作。
代码语言:javascript复制# 一定要先进入要删除的目录下
cd /var/spool/postfix/maildrop/
# pwd命令可以显示当前路径
pwd
# 一定要先确认当前路径再执行删除操作
find . -name "*" | xargs rm -rf
再次强调,一定要注意,先cd到需要删除的目录下,然后再执行删除操作