linux磁盘空间满

根据系统输出,根目录/所在的/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. 临时扩容(如果无法立即清理)

如果清理后空间仍不足,可以考虑:​

  1. 挂载临时目录:将大文件临时移至其他分区。​
  1. 扩展磁盘:通过云服务商或物理设备扩容(需重启系统)。​

注意事项

  • 谨慎删除:避免删除系统关键文件(如/lib、/usr/bin)。​
  • 备份数据:删除重要文件前先备份。​
  • 监控空间:清理后使用df -h确认空间释放情况。​

如果问题持续存在,可能需要进一步分析磁盘使用模式或考虑扩容根分区。

发表评论

电子邮件地址不会被公开。 必填项已用*标注