VPS 磁盘空间不足?30 分钟释放空间的 6 种方法

本站部分链接为联盟推广链接。通过这些链接购买,我可能获得佣金...

这不仅不会增加您的实际费用,通常还能让您享受到专属折扣。所有上榜推荐均基于真实项目环境下的自费实测,排名完全由客观测评数据决定。详细规则请查阅《免责声明》。

VPS 磁盘满了这种事,发现的时候通常已经出问题了,WordPress 上传图片失败、数据库写入报错、网站直接白屏、SSH 登上去什么命令都跑不了。我自己踩过,也帮忙处理过好几次,每次都是紧张几分钟,但只要按顺序排查,基本上半小时内能找到问题所在。

这篇文章按照”释放最快/最多”的顺序来排,从最可能占大头的来,逐一清理。

先确认:磁盘到底用了多少、谁在占

ssh 登进服务器之后,第一件事跑这两条命令:

这条命令显示各个挂载点的磁盘使用情况。重点看根目录 / 那一行,Use% 如果已经到 95%+ 甚至 100%,就是这里出了问题。

然后定位是哪个目录占用最大:

这条命令把根目录下各个一级目录的占用从大到小排出来,通常一眼就能看出 /var/home/root 哪个是大头。找到大头之后再往里钻:

bash

这两条命令是整个排查过程的起点,不要跳过。如果你用宝塔面板,也可以在面板首页的系统信息里直接看磁盘使用率,但命令行给的信息更精确。

相关命令操作也可以参考这篇:VPS 常见问题排查手册

方法一:清理系统日志(最常见的大头)

日志文件是磁盘慢慢被吃掉的最常见原因。一台跑了几个月的 VPS,/var/log 目录轻轻松松积累几个 G,甚至更多。

快速查看日志目录占用:

针对性清理:

这两条命令通常能立刻释放几百 MB 到几个 G,效果最直接。

宝塔面板有时候自己的日志也会变得很大,在 /www/wwwlogs/ 目录下查一下:

已经归档的旧日志(.gz 结尾的)可以直接删:

执行完再跑一次 df -h,看看释放了多少。

方法二:清理 APT/YUM 包缓存

系统每次安装或更新软件包,都会在本地留一份缓存。时间久了,/var/cache/apt/var/cache/yum 就会积累大量过期的包文件。

Debian/Ubuntu 系统:

apt clean 清掉所有已下载的包缓存,autoremove 卸载不再被任何包依赖的孤立包。这两条命令合起来经常能释放 500MB~2GB。

CentOS/Rocky/AlmaLinux 系统:

清完再确认:

方法三:清理 WordPress 媒体文件和数据库日志

如果 VPS 上跑的是 WordPress,媒体库是另一个需要检查的地方。WordPress 每次上传图片,都会自动生成多个尺寸的缩略图(thumbnail-150×150、medium-300×300、large-1024×768 等),一张原图可能生成 5~8 个副本。跑了一两年的站,/www/wwwroot/你的域名/wp-content/uploads/ 轻松上 G。

查看 WordPress 上传目录的占用:

这里不建议盲目删除,因为缩略图是 WordPress 正常运行需要的。但可以做两件事:

清理孤立媒体文件: 安装 WordPress 插件 Media CleanerWP-Sweep,扫描出媒体库中没有被任何文章引用的孤立图片,然后批量删除。

清理 MySQL 二进制日志(binlog): 如果数据库开启了 binlog,/www/server/data/ 目录下会有大量 mysql-bin.000xxx 文件。先确认是否存在:

如果存在,可以在宝塔面板 → 数据库 → phpMyAdmin → SQL 命令行执行:

这条命令删掉 7 天前的所有 binlog,保留最近 7 天的。

如果你用宝塔面板的数据库备份功能,默认备份文件存放在 /www/backup/database/,积累多了也会很大,定期清理旧备份文件:

WordPress 的配置和调优也可以看这里:WordPress 安装后必做的基础设置

方法四:清理 Docker 残留(如果有跑 Docker)

如果 VPS 上装了 Docker,镜像、容器、volume 是最容易悄悄吃掉几十 GB 的地方,很多人完全没注意到。

先看 Docker 占用多少:

这条命令列出镜像(Images)、容器(Containers)、本地卷(Local Volumes)各自的占用。

一键清理:

注意:这条命令会删掉所有没有正在运行的容器用到的镜像和 volume。如果有停止状态的容器你还想保留,先用 docker ps -a 确认一下。

单独清理未使用的镜像:

Docker 生产环境用起来,磁盘管理是必须重视的事,有时候一次 system prune 能释放十几个 G。

方法五:清理 /tmp 和 /root 下的临时文件

/tmp 目录按道理系统重启会自动清理,但有些长期不重启的 VPS 里,/tmp 会积累大量临时文件。/root 目录下有时候也会有人手动下载了安装包然后忘了删。

常见的遗留文件有:下载过的系统安装包(.tar.gz、.zip)、测试时下载的文件、旧版本宝塔/1Panel 升级包等,确认不需要的直接删掉。

方法六:检查并清理旧内核(Ubuntu/Debian)

Ubuntu/Debian 系统每次内核更新,旧内核不会自动删除,时间久了 /boot 分区会被占满,甚至导致无法更新软件。

查看当前使用的内核:

查看所有已安装的内核:

自动清理旧内核(保留当前内核):

这条命令会自动识别并删掉不再需要的旧内核包。如果 /boot 已经满了,可能连这条命令都跑不了,这种情况下需要先手动删一两个旧内核再执行 autoremove。

做完之后:把 Swap 也配上

清理完磁盘,顺手检查一下服务器有没有开 Swap。很多 VPS 默认不带 Swap,内存一紧张就触发 OOM 直接 kill 进程,而 Swap 可以作为内存不足时的缓冲。配 Swap 不占用磁盘空间(只是把一块磁盘空间用作虚拟内存),对 1GB 内存的小 VPS 特别有用。

具体操作可以看这篇:VPS 添加 Swap 虚拟内存教程

长期防范:别让磁盘再悄悄满

几个容易落地的习惯:

日志保留策略要设。/etc/logrotate.conf 里配置 rotate 周期和保留数量,或者用 journalctl --vacuum-size 定期执行。

备份文件不要只往 VPS 本地存。本地磁盘已经紧张,备份再堆本地是在挖坑。备份应该推到对象存储或云端,本地只保留最近 1~2 份。

Docker 镜像要定期清理。如果有 CI/CD 流水线在跑,每次 build 都会生成新镜像,很快就堆满。配个定时任务定期 docker image prune

VPS 服务器使用过程中的其他常见问题,可以参考:VPS 常见问题排查手册

更多 VPS 推荐选购:VPS 推荐汇总

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


快捷菜单
WordPress 主机
VPS 主机
最新优惠
正版授权
联系我们