5
0
0

服务器磁盘清理总结

2026-10-15
文章摘要
|

目标:在不动网站(宝塔 PHP)、运行中的 Docker 容器、Hermes 运行时的前提下,安全释放服务器磁盘空间。

一、起点与终点

指标

清理前

清理后

磁盘已用

44G(72%)

33G(54%)

可用空间

17G

28G

累计释放

—

≈ 11GB

二、清理明细(按执行顺序)

① Tier 1 + Tier 2 — 缓存/日志/迁移残留(释放 ≈ 4GB)

  • Docker build cache 193MB、悬空镜像 100MB

  • npm 缓存 338MB、node-gyp 缓存 54MB、Hermes uv 缓存 415MB

  • 宝塔 wwwlogs 活动日志截断 167MB

  • .hermes/migration 迁移残留 1.2GB

  • 旧 skill curator 备份(保留最新一份)714MB

  • node.backup 200MB

  • 结果:44G → 40G(72% → 67%)

② Tier 3 — 个人开发工具链(释放 ≈ 4GB)

  • ~/.nvm 1.7G、~/.rustup 1.5G、~/miniconda 1.4G、~/.cargo 270M、~/.bun 193M

  • 确认无任何运行进程/网站依赖后删除

  • 结果:40G → 36G(67% → 59%)

③ Tier 4 — 未引用的 Docker 镜像(释放 ≈ 1GB)

  • 删除 9 个未被任何容器/compose 引用的镜像:sub2api、postgres:18-alpine、redis:8-alpine、ubuntu:24.04、golang:1.23-alpine、watchtower、alpine:3.20、docker/dockerfile:1、hello-world

  • 结果:36G → 35G(59% → 58%)

④ Tier 5-7 — 深度清理(释放 ≈ 2.3GB)

  • Docker 容器日志(json.log)截断:1.5GB → 424K(其中 xianyu-scheduler 单容器占 1.3GB)

  • /var/log 旧轮转日志 + btmp + jcloud 日志:800M → 50M

  • dnf 缓存:28M → 0

  • 结果:35G → 33G(58% → 54%)

三、关键安全动作与踩坑

  • ⚠️ 扫描脚本 bug 拦截:首版“未使用镜像”判定因 Docker 短 ID(12 位)与 inspect 完整 ID(64 位)不匹配,会把全部 22 个镜像误判为未使用。发现后改用 repo:tag 精准比对,显式跳过被容器引用的镜像,避免误删 13 个运行容器镜像。

  • 所有对数/日志操作均用 truncate -s 0(保留文件句柄,服务不中断),而非 rm(会 orphan fd、容器重启前不释放)。

  • 全程校验:13 个容器始终运行、宝塔 PHP(70/72/74/81/82)与 Hermes 进程(17 个)完好。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论

欢迎来到我的博客!