导读:小磁盘VPS最怕的就是空间跑满:数据库写不进、网站直接500。本文教你用几条命令快速定位占用大头,并清理出几个G的空间,最后附上预防方案。
一、先看全局:df -h
df -h
重点看 / 分区的Use%。如果已经100%,先别慌,Linux会为root保留5%的保留块,紧急情况下还能写入少量文件做清理。
二、定位大目录:du排序
du -h --max-depth=1 / 2>/dev/null | sort -rh | head -10
这条命令按大小倒序列出根目录下各一级目录,通常 /var、/root、/www 是重灾区。接着对可疑目录再钻一层:
du -h --max-depth=1 /var | sort -rh | head
三、常见空间杀手与清理命令
1. 系统日志:journalctl 日志经常悄悄涨到几个G。
journalctl --disk-usage journalctl --vacuum-size=100M
2. apt缓存:装过的软件包都留着。
apt clean
3. /var/log下的旧日志:
du -sh /var/log rm -f /var/log/*.gz /var/log/*.1
4. 邮件队列:cron任务的输出会堆在 /var/mail/root,很多人不知道。
du -sh /var/mail cat /dev/null > /var/mail/root
5. 自己留下的备份包和安装包:/root、/home、/tmp 里翻一翻,旧的 .tar.gz 和 .deb 直接删。
四、装了Docker的机器要额外清理
docker system df docker system prune -a
镜像、停止的容器、悬空卷一次清掉,经常能腾出几个G。注意 prune -a 会删除未使用的镜像,确认没有需要保留的再执行。
五、找出隐藏的大文件
find / -xdev -type f -size +100M -exec ls -lh {} ;
-xdev 限制在当前分区,避免扫到其他挂载盘。看到不认识的大文件,先确认用途再删。
六、预防:别让磁盘再爆第二次
- 监控告警:用cron每天检查磁盘,超过80%就发邮件或推送;
- 日志轮转:确认 logrotate 配置正常,日志自动压缩清理;
- 备份外置:备份文件不要留在本机,传到对象存储或另一台机器;
- 数据库binlog:MySQL的binlog记得设置过期时间,否则无限增长。
总结
磁盘清理的顺序是:df看全局 → du找大头 → 按清单清理 → find查漏。清完记得做预防,监控加轮转,小磁盘也能长期稳定运行。



