ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Linux 服务器磁盘占满完整排查流程(宝塔环境)

Linux 服务器磁盘占满完整排查流程(宝塔环境)
#Linux服务器磁盘占满完整排查流程(宝塔环境)在用宝塔管理云服务器的时候,经常遇到磁盘使用率100%的告警,网站直接打不开。很多时候明明手动删了文件,空间还是不释放,这里整理一套完整排查步骤,适合自己日常运维查阅。##1、先区分两种情况:磁盘空间满还是inode耗尽很多人只看磁盘容量,忽略inode。inode耗尽的时候,磁盘还有剩余空间,但是无法新建文件、日志。```bash#查看磁盘容量df-h#查看inode使用情况df-i

2、定位占用最大的目录
如果是 inode 满了,大多是大量小日志文件、缓存碎片堆积,需要批量清理过期小文件。

du-sh/*2>/dev/null|sort-hr

这条命令会列出根目录下各个文件夹占用大小,从大到小排序。找到占用高的目录,继续往下一层排查。
如果是 /www 目录占用高,优先看站点日志、备份文件、数据库缓存。
如果是 /var 目录,基本是系统日志在疯狂写入。

3、坑点:文件删除但是空间不释放

这个问题非常常见:rm 删掉大日志文件,但是进程还持有这个文件句柄,磁盘空间不会释放。

lsof|grepdeleted

执行这条命令,找到已经标记 deleted、但是还被进程占用的文件。
解决办法:重启对应的进程(Nginx、PHP、mysql 等),或者直接重启服务器释放句柄。

4、批量清理过期日志(谨慎操作)

清理 7 天之前的日志文件,不会影响业务

find/var/log-typef-mtime+7-name"*.log"-deletefind/www/server/nginx/logs-typef-mtime+7-delete

⚠️不要直接执行 rm -rf,先 ls 预览确认文件再删除,避免误删站点数据。

5、宝塔自带方案

宝塔面板自带【硬盘分析】插件,可视化查看文件占用,新手不用敲命令,点几下就能定位大文件。
定期关闭不需要的站点日志、压缩自动备份、限制日志大小,从源头避免磁盘爆满。

总结

排查顺序:

  1. df -h /df -i 判断类型
  2. du 定位大目录
  3. lsof 检查已删未释放文件
  4. 清理日志 / 无用备份
  5. 优化日志轮转规则,预防再次爆满

参考资料

  • 测试文档:www.lrpab.com
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进