根据系统输出,根目录/所在的/dev/vda1分区已被占满,仅剩 13.80MB 空间。这会导致系统无法创建新文件、运行程序或更新,需要立即清理。以下是快速排查和清理的步骤:
1. 查找大文件和目录
使用以下命令找出占用空间最大的文件和目录:
TypeScript取消自动换行复制
# 查找根目录下占用空间最大的前10个文件和目录(深度为1)
sudo du -hxd 1 / | sort -hr | head -n 10
# 查找大于1GB的文件
sudo find / -type f -size +1G -exec du -sh {} \; 2>/dev/null
重点检查:
- 日志文件:/var/log/目录下的日志(如syslog、nginx/access.log等)
- 临时文件:/tmp/和/var/tmp/目录
- 缓存文件:/var/cache/(如yum、apt缓存)
- Docker 镜像:如果安装了 Docker,检查/var/lib/docker/
- 大数据库文件:如 MySQL、PostgreSQL 的数据目录
2. 清理日志文件
TypeScript取消自动换行复制
# 查看日志文件大小
sudo du -sh /var/log/*
# 安全清理(保留最新日志,清空历史内容)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/nginx/access.log # 按需修改
# 或者直接删除(谨慎操作!)
sudo rm /var/log/old_log_file.log
3. 清理系统缓存
TypeScript取消自动换行复制
# 清理yum缓存(CentOS/RHEL)
sudo yum clean all
# 清理apt缓存(Ubuntu/Debian)
sudo apt-get clean
sudo apt-get autoclean
# 清理Docker缓存(如果安装了Docker)
sudo docker system prune -a –volumes
4. 清理临时文件
TypeScript取消自动换行复制
# 清理/tmp目录(确保无重要文件)
sudo rm -rf /tmp/*
# 清理系统临时文件(如30天未使用的文件)
sudo find /var/tmp -type f -atime +30 -delete
5. 卸载无用软件
TypeScript取消自动换行复制
# 查看已安装软件占用空间(CentOS/RHEL)
yum list installed | awk ‘{print $1}’ | xargs yum info | grep -E “Name|Size”
# 卸载无用软件(示例:卸载apache2)
sudo yum remove httpd # CentOS/RHEL
sudo apt-get purge apache2 # Ubuntu/Debian
6. 释放 inode 空间(如果 inode 使用率高)
TypeScript取消自动换行复制
# 检查inode使用率
df -i
# 查找包含大量小文件的目录
sudo find / -xdev -type d -print0 | xargs -0 du -s | sort -n | tail -n 10
如果 inode 已满,需删除大量小文件(如日志碎片、缓存文件)。
7. 临时扩容(如果无法立即清理)
如果清理后空间仍不足,可以考虑:
- 挂载临时目录:将大文件临时移至其他分区。
- 扩展磁盘:通过云服务商或物理设备扩容(需重启系统)。
注意事项
- 谨慎删除:避免删除系统关键文件(如/lib、/usr/bin)。
- 备份数据:删除重要文件前先备份。
- 监控空间:清理后使用df -h确认空间释放情况。
如果问题持续存在,可能需要进一步分析磁盘使用模式或考虑扩容根分区。