服务器清理清单:别等磁盘满了才想起运维

服务器平时“能跑”,不代表它是干净的。

它更像一个没人定期打扫的房间:日志越堆越多,旧依赖没人删,临时脚本忘在角落,虚拟环境占着空间,crontab 里还有几年前随手加的任务。直到某天磁盘满了,服务启动失败,你才发现它已经乱了很久。

这篇原来只是一次周末清理流水账。现在重写成一份我以后真正能复用的清单:一人运维,最重要的不是会不会救火,而是能不能别总等火烧起来才动。

先看系统盘,不要凭感觉

清理服务器第一步,不是马上删文件,而是先搞清楚空间到底被谁吃了。

我现在会先跑:

1
2
3
df -h
sudo du -h -d 1 / 2>/dev/null | sort -h
sudo du -h -d 1 /var 2>/dev/null | sort -h

重点看几个地方:

位置 常见问题
/var/log 服务日志没有轮转,单文件越写越大
/var/lib/docker 镜像、容器、volume 堆积
/tmp 临时文件长期没清
项目目录 构建产物、缓存、上传文件混在一起
用户 home 压缩包、备份、旧仓库忘删

不要一上来就 rm -rf。先定位,再处理。

很多时候真正占空间的不是当前服务,而是几个月前试过、后来忘掉的东西。

日志要限额,不要靠自觉

日志最容易把系统盘拖死。

临时处理可以用:

1
2
sudo journalctl --disk-usage
sudo journalctl --vacuum-size=200M

但这只是打扫现场,不是解决问题。

更应该检查两件事:

  1. systemd journal 有没有限额;
  2. 应用自己的日志有没有轮转。

如果某个 Node/Python 服务一直把日志追加到一个文件里,几个月后它一定会变成炸弹。要么交给 logrotate,要么让进程管理器处理日志轮转。

一个简单的原则:任何会无限增长的文件,都必须有上限。

旧依赖和旧环境要敢删

服务器上最常见的垃圾,是“当时调试用、后来忘了”的依赖。

比如:

  • 编译安装留下的源码包;
  • 旧版本 Node/Python 环境;
  • 没再使用的虚拟环境;
  • npm/pip 缓存;
  • 早就停掉的项目目录;
  • 临时下载的二进制文件。

可以先列:

1
2
find ~ -maxdepth 3 -type d -name "node_modules" -prune -print
find ~ -maxdepth 4 -type d -name "venv" -o -name ".venv"

删之前确认两件事:项目是否还在跑,路径是否被 systemd/crontab 引用。

能用包管理器清的,就别手动乱删:

1
2
sudo apt autoremove
sudo apt clean

手动删项目目录前,最好先把服务停掉或确认它不在运行。

crontab 和 systemd 要定期盘点

服务器乱到最后,通常不是文件乱,而是“没人知道到底有哪些东西会自动跑”。

我现在会检查:

1
2
3
4
crontab -l
sudo ls /etc/cron.*
systemctl list-timers
systemctl list-units --type=service --state=running

重点问:

  • 这个定时任务还需要吗?
  • 它写日志到哪里?
  • 失败会通知谁?
  • 它依赖的路径还存在吗?
  • 它会不会和新系统重复执行?

之前 AI 助手迁移时,最麻烦的就是旧实例和新实例同时跑定时任务。服务器清理也一样:过期 cron 不只是占地方,它可能真的还在执行。

服务状态要和项目文档对得上

很多服务器问题的根源是:机器上跑着一堆服务,但文档里没有。

以后每个长期服务至少要记录:

项目 应该记录什么
服务名 systemd unit / pm2 名称
代码目录 仓库位置和分支
端口 本地端口和反代域名
数据目录 数据库、上传文件、缓存在哪里
日志位置 怎么查日志,是否轮转
重启方式 正确 restart 命令
停用方式 停掉后有没有副作用

没有文档的服务,迟早会变成“谁也不敢删”的遗留物。

一份月度清理清单

以后如果要做服务器卫生检查,可以按这份来:

1
2
3
4
5
6
7
8
9
10
11
[ ] df -h 看磁盘水位
[ ] du 定位 /var、home、项目目录的大文件
[ ] journalctl --disk-usage 检查系统日志
[ ] 检查应用日志是否轮转
[ ] apt autoremove / clean
[ ] 检查 Docker 镜像、容器、volume(如果有)
[ ] 检查 node_modules / venv / 缓存目录
[ ] crontab -l 和 systemd timers 盘点定时任务
[ ] systemctl running 服务和文档核对
[ ] 删除或归档废弃项目
[ ] 更新维护文档

这份清单不用每天跑。一个月跑一次,就能少很多突然救火。

最后

服务器维护最烦人的地方在于,它经常看起来“不创造新价值”。

你清日志、删旧包、整理服务,用户看不到新功能,项目也没有新增页面。但如果不做,某天磁盘满了、日志写爆了、旧任务重复跑了,它会用更难看的方式提醒你。

一人做项目,运维卫生也算产品工作的一部分。

别等系统盘红了,才想起自己还有一台服务器要照顾。


服务器清理清单:别等磁盘满了才想起运维
https://nmdft.cn/2026/01/18/weekend-server-cleanup/
作者
nmdft
发布于
2026年1月18日
许可协议

评论

邮箱仅用于识别评论者,不会公开显示。

评论加载中…