磁盘占用 100% 引发的故障特别有意思:网站打不开、数据库报错、连命令都执行异常,看起来到处起火,其实火源只有一个。学会定位和清理,半小时灭火。
两步定位大文件
df -h
du -sh /* 2>/dev/null | sort -rh | head从根目录逐层往下钻,大文件几乎都藏在日志目录、数据库目录和 Docker 目录这三处。
安全清理清单
- 已轮转的旧日志(.gz 结尾)可以放心删,正在写入的活跃日志别动
- Docker 清理:
docker system prune一键清掉无用镜像和停止的容器 - 数据库二进制日志、临时备份文件按需清理
预防胜于救火
- 给日志配置轮转(logrotate),限制单文件大小
- 给磁盘占用配 80% 告警,给自己留出手时间
- 数据放可扩容的云盘上,快满时在线扩容
删文件前先确认它是什么,rm 一时爽,删错泪两行,拿不准的先移到临时目录观察几天。