文档首页> 常见问题> 磁盘满了网站报错

磁盘满了网站报错

发布时间:2026-03-12 19:51        更新时间:2026-03-13 03:03
数据库写不进、后台上传报错、页面间歇 500,几个症状同时出现,第一反应应该是看磁盘:df -h 一条命令,很多"疑难杂症"当场破案。 ## 确认哪块盘、哪个目录满 df -h 看整体,Use% 列 100% 的就是目标;再逐层定位大目录: du -sh /* 2>/dev/null | sort -rh | head 对可疑目录继续往下钻,通常一两分钟就能锁定占空间的元凶。隐藏目录经常漏看,/home 下的点目录单独列一遍:du -sh /home/.* 排查用户自己的大文件。 留意 df 与 du 结论矛盾的情况:多半是文件已删除但进程仍握着句柄,空间没真正释放,用 lsof +L1 定位处理,那是另一类问题。 ## 应急清理按风险从低到高 安全度最高的三类目标:系统日志,journalctl --vacuum-size=200M 立即释放空间;应用日志,确认不再需要的用 truncate -s 0 /var/log/app.log 清空(比 rm 安全,不改变文件句柄);包管理缓存,CentOS 执行 yum clean all,Ubuntu 执行 apt clean。/tmp 里超过一周没人访问的文件也可以清。数据目录、数据库文件、网站附件这三类,没做备份确认前一律不动。 压缩代替删除也是一招:gzip 压缩旧日志通常能缩到十分之一以下,比直接删温和,误删风险也低。 ## 找出持续增长的大文件 find / -xdev -type f -size +500M -exec ls -lh {} \; 2>/dev/null 输出里最常见的是没做轮转的业务日志,单个几十 GB 并不稀奇。清掉单个文件还要治本:给长驻服务配 logrotate(日志轮转工具),按天切割、限制保留份数、超期压缩删除,配置放在 /etc/logrotate.d/ 下。数据库表空间膨胀别直接删底层文件,先在库内清数据再回收表空间,顺序反了会把库弄坏。 ## 留一道告警 磁盘从 80% 涨到 100% 可能只要几天,监控或脚本里加一条阈值告警(85% 触发即可),比每次救火从容得多。多分区的机器每个挂载点都要覆盖,数据盘与系统盘分开设阈值,只盯根分区会漏报。清理完毕用 df -h 复核,再观察一天,确认增长源头已经堵住。动手前留个缓冲:拿不准的目录先 mv 到临时位置观察半天,确认没有业务依赖再真删。