阿里云服务器系统盘满了,是一个常见的问题。当系统盘空间不足时,可能会导致:
- 服务无法正常运行(如 Web 服务、数据库等)
- 系统无法写入日志或临时文件
- SSH 登录异常
- 自动更新失败
- 甚至系统崩溃
一、确认系统盘是否真的满了?
你可以通过以下命令查看磁盘使用情况:
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 38G 2G 95% /
如果 /(根目录)的使用率接近 100%,说明系统盘确实满了。
二、常见原因和解决方案
1. 日志文件过大
Linux 系统和服务(如 Nginx、Apache、MySQL、系统日志)会产生大量日志文件。
解决方法:
-
查看大日志文件:
find / -type f -size +100M -
清理 Nginx/Apache 日志(注意备份):
> /var/log/nginx/access.log > /var/log/nginx/error.log -
清理系统日志:
> /var/log/messages > /var/log/syslog
⚠️ 注意:不要直接删除正在使用的日志文件,建议用
>清空内容,或者重启相关服务释放句柄。
2. 临时文件堆积
系统或程序可能产生大量临时文件。
解决方法:
-
删除临时文件:
rm -rf /tmp/* -
清理 yum/apt 缓存(根据你的系统):
CentOS/RHEL:
yum clean allUbuntu/Debian:
apt-get clean
3. 安装软件过多
比如安装了多个版本的 Python、Java、Node.js、Docker 镜像等。
解决方法:
- 卸载不再使用的软件包。
- 使用
du命令查找占用大的目录:du -sh /*
4. inode 满了
有时虽然磁盘空间没满,但 inode 被占满也会导致写入失败。
检查方式:
df -i
如果 Use% 达到 100%,说明 inode 被大量小文件占用了。
解决方法:
-
查找大量小文件的目录:
find / -type f | cut -d'/' -f2 | sort | uniq -c | sort -n -
特别注意:
/var/spool/mail//tmp//var/tmp/- 网站缓存目录(如 WordPress 的
/wp-content/cache)
5. 扩展系统盘容量(终极方案)
如果你经常遇到系统盘不够用的问题,可以考虑 扩容系统盘:
在阿里云控制台操作步骤如下:
- 登录 阿里云控制台
- 找到你的 ECS 实例
- 停止实例(注意备份数据)
- 进入“磁盘”页面,选择系统盘进行扩容
-
启动实例后,在 Linux 中执行扩容命令(适用于 ext4/xfs 文件系统):
-
对于 ext4 文件系统:
resize2fs /dev/vda1 -
对于 xfs 文件系统:
xfs_growfs /
-
三、推荐预防措施
| 措施 | 描述 |
|---|---|
| 定期清理日志 | 使用 crontab 或 logrotate 工具自动清理日志 |
| 监控磁盘使用 | 使用监控工具(如 Zabbix、Prometheus)预警 |
| 使用独立数据盘 | 将网站、数据库、日志等放到挂载的数据盘上 |
| 设置自动清理脚本 | 如定期清理 tmp、cache、yum/apt 缓存 |
四、示例自动清理脚本(供参考)
创建一个脚这里件,例如 /root/clean_disk.sh:
#!/bin/bash
# 清空常用日志
echo "Clearing logs..."
> /var/log/messages
> /var/log/syslog
> /var/log/dpkg.log
> /var/log/nginx/access.log
> /var/log/nginx/error.log
# 清理 apt/yum 缓存
echo "Cleaning package cache..."
apt-get clean || yum clean all
# 清理临时文件
echo "Removing temp files..."
rm -rf /tmp/* /var/tmp/*
# 重启相关服务释放日志句柄(视情况而定)
# systemctl restart nginx
# systemctl restart mysqld
echo "Disk cleaning completed."
添加定时任务(每天凌晨2点执行):
crontab -e
添加一行:
0 2 * * * /bin/bash /root/clean_disk.sh >> /var/log/clean_disk.log 2>&1
如果你能提供更多信息(比如你用的是哪种系统、哪些服务),我可以给出更具体的建议。需要我帮你分析具体哪个目录占用最大吗?
云知识