Linux 服务器磁盘占满完整排查流程(宝塔环境)
#Linux服务器磁盘占满完整排查流程宝塔环境在用宝塔管理云服务器的时候经常遇到磁盘使用率100%的告警网站直接打不开。很多时候明明手动删了文件空间还是不释放这里整理一套完整排查步骤适合自己日常运维查阅。##1、先区分两种情况磁盘空间满还是inode耗尽很多人只看磁盘容量忽略inode。inode耗尽的时候磁盘还有剩余空间但是无法新建文件、日志。bash#查看磁盘容量df-h#查看inode使用情况df-i2、定位占用最大的目录如果是 inode 满了大多是大量小日志文件、缓存碎片堆积需要批量清理过期小文件。du-sh/*2/dev/null|sort-hr这条命令会列出根目录下各个文件夹占用大小从大到小排序。找到占用高的目录继续往下一层排查。如果是 /www 目录占用高优先看站点日志、备份文件、数据库缓存。如果是 /var 目录基本是系统日志在疯狂写入。3、坑点文件删除但是空间不释放这个问题非常常见rm 删掉大日志文件但是进程还持有这个文件句柄磁盘空间不会释放。lsof|grepdeleted执行这条命令找到已经标记 deleted、但是还被进程占用的文件。解决办法重启对应的进程Nginx、PHP、mysql 等或者直接重启服务器释放句柄。4、批量清理过期日志谨慎操作清理 7 天之前的日志文件不会影响业务find/var/log-typef-mtime7-name*.log-deletefind/www/server/nginx/logs-typef-mtime7-delete⚠️不要直接执行 rm -rf先 ls 预览确认文件再删除避免误删站点数据。5、宝塔自带方案宝塔面板自带【硬盘分析】插件可视化查看文件占用新手不用敲命令点几下就能定位大文件。定期关闭不需要的站点日志、压缩自动备份、限制日志大小从源头避免磁盘爆满。总结排查顺序df -h /df -i 判断类型du 定位大目录lsof 检查已删未释放文件清理日志 / 无用备份优化日志轮转规则预防再次爆满参考资料测试文档www.lrpab.com