阿里云服务器磁盘满了是一个常见但需要谨慎处理的问题。处理前请务必先确认是系统盘还是数据盘,以及是否还有扩容空间。以下是分步骤的排查与解决方案:
🔍 第一步:快速诊断(确认占用情况)
# 1. 查看各分区使用率
df -h
# 2. 定位大文件/目录(以根目录为例)
du -sh /* | sort -hr | head -n 20
# 3. 查找大于 500MB 的文件
find / -type f -size +500M -exec ls -lh {} ; 2>/dev/null | sort -k5 -hr | head -n 20
# 4. 检查日志文件(常见占用大户)
ls -lhS /var/log/
journalctl --disk-usage # 查看 systemd 日志占用
💡 注意:避免直接
rm大文件!若被进程占用,需先终止进程或重启服务释放句柄。
🛠️ 第二步:安全清理(优先尝试)
✅ 可安全清理项:
| 类型 | 操作建议 |
|---|---|
| 旧日志 | sudo journalctl --vacuum-time=7dsudo find /var/log -name "*.log" -mtime +7 -delete |
| 缓存文件 | sudo apt-get clean (Debian/Ubuntu) 或 sudo yum clean all (CentOS) |
| 临时文件 | /tmp, /var/tmp 中过期文件 |
| Docker 垃圾 | docker system prune -a --volumes(慎用!会删除未运行容器镜像) |
| 包管理器缓存 | yum clean packages / apt autoclean |
⚠️ 警告:
❌ 不要直接删除 /proc, /sys, /dev 等虚拟文件系统
❌ 避免误删系统关键目录(如 /etc, /bin, /usr)
📈 第三步:磁盘扩容(推荐方案)
如果清理后仍不足,扩容是最稳妥的方式(尤其对系统盘)。
场景 A:云盘支持在线扩容(无需停机)
- 登录 阿里云控制台
- 进入 云服务器 ECS → 实例 → 磁盘管理
- 找到对应磁盘 → 点击 更多 → 扩容
- 选择新容量(注意:仅支持增大,不可缩小)
- 勾选“自动格式化”(可选,但建议手动操作更安全)
- 扩容后需在操作系统内扩展文件系统:
# 示例:假设原/dev/vda1 从 40G 扩到 80G
lsblk # 确认新大小已生效
growpart /dev/vda 1 # 安装工具:yum install cloud-utils-growpart 或 apt install cloud-guest-utils
resize2fs /dev/vda1 # ext4 文件系统
# 若是 xfs 格式:xfs_growfs /
✅ 优势:业务无感知,数据零丢失
⚠️ 注意:部分老旧系统或 LVM 配置需特殊处理,建议提前备份快照!
场景 B:无法在线扩容(需停机)
- 创建磁盘快照(重要!)
- 关机 → 扩容磁盘 → 开机 → 按上述步骤扩展文件系统
🔄 第四步:长期优化建议
- 启用 日志轮转(logrotate)自动压缩/清理旧日志
- 将大文件(如数据库、上传附件)迁移至独立数据盘或 OSS
- 部署监控告警(通过云监控设置磁盘使用率 >80% 报警)
- 定期执行
df -h+du巡检脚本
❗ 紧急情况处理
若磁盘 100% 导致服务无法启动:
- 尝试进入单用户模式/救援模式挂载只读分区
- 紧急删除非关键大文件(如旧备份、测试数据)
- 联系阿里云技术支持(提供实例 ID 可申请紧急协助)
需要我帮你生成一个自动化巡检脚本,或指导具体某类文件(如 MySQL 慢查询日志、Docker 镜像)的清理方案吗?
CLOUD云知道