如题,nginx和php等服务器起不来,提示类似磁盘空间不足的报错,但实际上还有空间,很纳闷,为什么清理了大文件重启服务器还是起不来?于是问了ai
你遇到的核心问题是:Linux 磁盘清理后重启有了可用空间,但 Nginx 启动失败,创建文件也提示和drive space相关的错误,这说明问题不是单纯的磁盘空间,而是文件系统或文件权限 / 状态异常。
1. 先排查最常见的「磁盘 inode 耗尽」问题
磁盘空间(block)释放了,但 inode(文件节点,记录文件元信息)可能仍被占满,这会导致「能看到空间但无法创建文件」:
查看所有磁盘的 inode 使用情况(重点看 Use% 列)
df -i

如果某分区 inode 使用率 100%:
查找小文件/临时文件密集的目录(比如 /tmp、Nginx 日志目录)
find / -type f -size 0 -delete # 删除空文件
find /var/log -name "*.log" -type f -mtime +7 -delete # 删除7天前的日志
后续:
1. 快速定位占用 inode 最多的目录(从根目录开始扫描)
for i in /*; do echo $i; find $i | wc -l; done
第一个/*代表扫描根目录下,可以改成/www/*这样一层一层扫描下去,最后定位,删除文件就行,inode也会释放
解释
你删除了 大文件但 inode 仍 100%,核心原因是:大文件占用的是磁盘空间(block),而 inode 耗尽是「文件数量太多」导致的(哪怕都是小文件 / 空文件),删除单个大文件对 inode 数量几乎无影响。
