惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
Last Week in AI
Last Week in AI
爱范儿
爱范儿
WordPress大学
WordPress大学
V
V2EX
宝玉的分享
宝玉的分享
小众软件
小众软件
B
Blog
博客园 - 叶小钗
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
H
Help Net Security
P
Proofpoint News Feed
D
Docker
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
月光博客
月光博客

腾腾博客

CN2 GIA 主机补货监控:搬瓦工/DMIT/V.PS/HostDare 现货实时提醒工具推荐 - 腾腾博客 Vultr 和 DigitalOcean 哪个好?外贸站同价位实测对比(2026) - 腾腾博客 IP 纯净度检测工具推荐:一个页面查清 IP 是机房还是住宅(Net.Coffee 实用指南) - 腾腾博客 丽萨主机 VS ZoroCloud:CN2 GIA 住宅 IP VPS 怎么选(2026) - 腾腾博客 V.PS 怎么样?支付宝购买教程 + 阿姆斯特丹 Pro 实测(2026) - 腾腾博客 CN2 GIA 主机为什么老缺货?现货主力搬瓦工 + 平替全指南(2026) - 腾腾博客 aaPanel 安装 WordPress 教程:新手也能十分钟搭好一个网站 - 腾腾博客 Vultr 购买教程:洛杉矶高频 VPS 部署与测评支持支付宝付款 (2026) - 腾腾博客 移动端SEO优化清单:WordPress外贸站谷歌移动优先索引避坑指南 - 腾腾博客 WordPress 提示"另一更新正在进行"?3 种方法彻底解决 - 腾腾博客 WordPress SEO 完整指南:外贸站从 0 到排上 Google 首页 - 腾腾博客 LocalWP 本地建站教程:零服务器在电脑上搭建 WordPress - 腾腾博客 Namecheap 域名转入 Cloudflare 完整教程:图文步骤新手跟着做不踩坑 - 腾腾博客 宝塔面板 vs aaPanel 哪个好?2026深度对比,选对少走弯路 - 腾腾博客 CN2 GIA主机商哪家强?4大顶级服务商2026深度评测 - 腾腾博客 Namesilo vs Namecheap vs Cloudflare 域名对比 2026:外贸站选哪家? - 腾腾博客 SiteGround Coderick AI深度测评 2026:免费50,000 Credits,实测3个真实项目 - 腾腾博客 SiteGround支持支付宝了!2026年国内用户购买完整教程(官方确认) - 腾腾博客 Evoxt VPS测评+购买教程 2026:洛杉矶AMD EPYC实测,$2.99/月起 - 腾腾博客 Hostinger VPS vs DigitalOcean Droplet 2026:外贸站该怎么选?深度对比 - 腾腾博客 六六云(666clouds)美西双ISP VPS真实测评:NTT原生IP,¥50/月起 - 腾腾博客 ChemiCloud怎么买最便宜?2026年省钱攻略持续更新 - 腾腾博客 外贸站为什么建议用CN2 GIA线路?普通VPS的3个致命问题 - 腾腾博客 Bluehost WordPress主机购买评测+建站完整教程 2026(图文详解) - 腾腾博客 Shopify独立站 vs WordPress独立站:成本与外贸适用性深度对比 2026 - 腾腾博客 外贸站新手最容易踩的5个主机坑(附真实场景复盘)2026年避坑指南 - 腾腾博客 DMIT vs 搬瓦工:CN2 GIA谁更稳?2026年外贸站VPS深度对比 - 腾腾博客 Hello Elementor主题完整教程:安装设置+页眉页脚+建站全流程图文指南 - 腾腾博客 Hostinger怎么买最便宜?最低价购买方法+额外折扣码教程 - 腾腾博客 WordPress如何添加Google字体(不拖慢速度的正确方法)2026年完整教程 - 腾腾博客
VPS 磁盘空间不足?30 分钟释放空间的 6 种方法 - 腾腾博客
ctzpj · 2026-08-31 · via 腾腾博客

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

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

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

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

df -h

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

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

du -sh /* 2>/dev/null | sort -rh | head -20

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

bash

du -sh /var/* 2>/dev/null | sort -rh | head -20

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

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

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

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

快速查看日志目录占用:

du -sh /var/log/* 2>/dev/null | sort -rh | head -20

针对性清理:

# 清理 systemd journal 日志,只保留最近 3 天
journalctl --vacuum-time=3d

# 或者按大小限制,只保留 200MB 以内
journalctl --vacuum-size=200M

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

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

du -sh /www/wwwlogs/* | sort -rh | head -10

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

find /var/log -name "*.gz" -delete
find /var/log -name "*.1" -delete

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

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

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

Debian/Ubuntu 系统:

apt clean
apt autoremove -y

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

CentOS/Rocky/AlmaLinux 系统:

yum clean all
dnf clean all

清完再确认:

du -sh /var/cache/apt
du -sh /var/cache/yum

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

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

查看 WordPress 上传目录的占用:

du -sh /www/wwwroot/*/wp-content/uploads/

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

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

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

ls -lh /www/server/data/mysql-bin.* 2>/dev/null

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

PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);

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

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

ls -lh /www/backup/database/

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

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

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

先看 Docker 占用多少:

docker system df

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

一键清理:

# 删除所有停止运行的容器、未被使用的镜像、悬空 volume
docker system prune -a --volumes

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

单独清理未使用的镜像:

docker image prune -a

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

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

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

# 查看 /tmp 占用
du -sh /tmp

# 安全清理(删 7 天前的文件)
find /tmp -mtime +7 -exec rm -rf {} + 2>/dev/null

# 查看 /root 下有没有大文件
du -sh /root/* 2>/dev/null | sort -rh | head -10

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

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

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

查看当前使用的内核:

uname -r

查看所有已安装的内核:

dpkg --list | grep linux-image

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

apt autoremove --purge

这条命令会自动识别并删掉不再需要的旧内核包。如果 /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 推荐汇总