当你的 WordPress 云服务器系统盘快满了,可能会导致网站无法访问、数据库写入失败、更新失败等问题。以下是排查和解决该问题的完整步骤:
🔍 一、检查磁盘使用情况
登录服务器(通过 SSH)执行以下命令查看磁盘使用情况:
df -h
重点关注 /(根目录)或 /dev/vda1 等系统盘的使用率。
如果使用率超过 90%,就需要清理了。
🧹 二、查找大文件/目录
- 查看各目录占用空间:
du -sh /* 2>/dev/null | sort -hr | head -10
这会列出根目录下最大的前10个目录。
- 深入某个目录继续查找(例如 /var):
du -sh /var/* 2>/dev/null | sort -hr | head -10
常见大文件来源:
/var/log:日志文件/var/www/html:WordPress 文件(特别是媒体上传)/tmp:临时文件- 备份文件(如
.tar.gz,.sql)
🛠️ 三、常见清理方案
✅ 1. 清理系统日志(/var/log)
Linux 系统日志可能非常大,尤其是 Nginx/Apache 错误日志。
# 查看日志大小
du -sh /var/log/*
# 清空大日志文件(不要直接删除,避免服务出错)
> /var/log/nginx/error.log
> /var/log/apache2/error.log
> /var/log/syslog
⚠️ 注意:用
>清空比rm更安全,不会中断正在写入的日志进程。
你也可以使用 logrotate 配置自动轮转日志。
✅ 2. 删除旧的 WordPress 备份文件
很多用户或插件(如 UpdraftPlus、All-in-One WP Migration)会在服务器上留下备份包。
检查并删除:
find /var/www/html -name "*.zip" -o -name "*.tar.gz" -o -name "*.sql"
手动删除不需要的备份:
rm /var/www/html/backup_2023.sql
✅ 3. 清理 WordPress 媒体库垃圾
- 检查是否有大量未使用的上传文件(可通过插件如 Media Cleaner 扫描)。
- 删除
wp-content/uploads中的测试图片、旧版本文件。
✅ 4. 清理缓存文件
- 对象缓存 / 页面缓存:如 WP Super Cache、W3 Total Cache 的缓存文件。
- 手动删除缓存目录:
rm -rf /var/www/html/wp-content/cache/*
✅ 推荐使用插件后台清除,更安全。
✅ 5. 删除无用的 PHP 版本或软件包
如果你使用多 PHP 版本(如 via ondrej/php PPA),旧版本可能占用空间。
sudo apt list --installed | grep php
sudo apt remove php7.4-common # 示例:卸载不用的版本
sudo apt autoremove
✅ 6. 清理 APT 缓存(Ubuntu/Debian)
sudo apt clean
sudo apt autoremove
可释放几百 MB 空间。
✅ 7. 检查 MySQL 数据库是否过大
有时数据库 .ibd 文件很大:
du -sh /var/lib/mysql/
进入 MySQL 优化:
-- 查看各表大小
SELECT
table_schema as database_name,
table_name,
round(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
FROM information_schema.tables
ORDER BY size_mb DESC
LIMIT 10;
- 删除不必要的文章修订版、垃圾评论、插件残留数据。
- 使用插件如 WP-Optimize 自动优化数据库。
💡 四、长期解决方案
| 方案 | 说明 |
|---|---|
| 升级系统盘 | 在云平台(阿里云、腾讯云、AWS)扩容云盘(需注意操作风险) |
| 挂载数据盘 | 将 /var/www 或 /var/lib/mysql 迁移到新挂载的数据盘 |
| 使用对象存储 | 把 WordPress 上传文件同步到 OSS/S3,减少本地占用 |
| 定期清理脚本 | 写 cron 定时任务自动清空日志、缓存 |
🔄 示例:自动清理日志脚本(加入 cron)
# 编辑定时任务
crontab -e
# 每月1号清空大日志
0 0 1 * * > /var/log/nginx/access.log
0 0 1 * * > /var/log/nginx/error.log
📌 总结建议
- 先用
df -h和du -sh找出“罪魁祸首”。 - 优先清理日志、备份、缓存等非核心文件。
- 不要随便删除未知文件,防止系统崩溃。
- 长期考虑迁移或扩容。
如果你告诉我你用的是哪家云服务器(如阿里云、腾讯云、AWS)、系统类型(Ubuntu/CentOS)和 Web 环境(LNMP/LAMP),我可以提供更具体的命令和操作建议。
云服务器