Debian 服务器磁盘空间排查与清理实录
那天登录服务器,随手敲了一个 df -h,发现根分区用了 91%。40G 的小盘,眼看就要满了。磁盘满了可不是小事:服务写不了日志、数据库可能停写,连 apt 升级都会罢工。这篇就记录一次完整的磁盘排查和清理过程。
第一步:定位大目录。df -h 看整体水位,确认是 /var 占了大头;再用 du -sh /var/* 逐级往下找,很快锁定两个嫌疑人:/var/log 和 /var/lib/docker。这两个地方,十台小服务器里九台都是它们。
第二步:清理日志。用 journalctl --disk-usage 看 journal 占了多少——嚯,3.2G。systemd 的 journal 默认不限制大小,日积月累很可观。journalctl --vacuum-time=7d 只保留最近 7 天的日志,一下子腾出近 3G。再在 /etc/systemd/journald.conf 里设 SystemMaxUse=200M,给它戴上紧箍咒。/var/log 下的应用日志手动轮转一次,大的旧日志压缩归档。
第三步:清理包缓存和旧内核。apt clean 把 /var/cache/apt 下的 .deb 包清掉,腾出几百兆。再看 dpkg -l | grep linux-image 列出的旧内核,用 apt autoremove --purge 删掉不用的,只留当前和上一个版本做保险。
第四步:清理 Docker。docker system df 一看,镜像和构建缓存占了好几个 G。docker image prune -a 清掉无人引用的镜像,docker builder prune 清构建缓存。正在跑的容器不受影响,空间倒是回来了。
第五步:防止复发。配好 logrotate,给关键应用日志按天轮转、保留 14 天、自动压缩。再加一个每周跑一次的 df 检查小脚本,水位超过 80% 就发邮件提醒自己。
一通操作下来,根分区从 91% 降到 58%,服务全程没停。磁盘清理最怕的不是清理,而是不知道它满了。把排查命令和定期策略固定下来,小机器也能跑得稳稳当当。
- 点赞
- 收藏
- 关注作者
评论(0)