插件窝 干货文章 Linux日志“Disk full”解决方案

Linux日志“Disk full”解决方案

文件 磁盘 删除 sudo 502    来源:    2025-05-06

Linux "Disk full" 日志解决方案

当Linux系统出现"Disk full"错误时,表示磁盘空间已满或接近满容量。以下是系统性的解决方案:

1. 确认磁盘空间状态

# 查看整体磁盘使用情况
df -h

# 查看各目录占用空间
du -sh /* 2>/dev/null | sort -h

2. 清理临时文件

# 清理旧的临时文件
sudo rm -rf /tmp/*

# 清理软件包缓存
sudo apt-get clean       # Debian/Ubuntu
sudo yum clean all       # CentOS/RHEL
sudo dnf clean all       # Fedora

3. 查找并删除大文件

# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

# 查找并删除7天前的日志文件
find /var/log -type f -mtime +7 -exec rm -f {} \;

4. 清理日志文件

# 清空特定日志文件而不删除(保留inode)
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

# 配置日志轮转
sudo nano /etc/logrotate.conf

5. 清理旧的内核版本(Debian/Ubuntu)

# 查看已安装内核
dpkg --list | grep linux-image

# 删除旧内核(保留当前和上一个版本)
sudo apt-get autoremove --purge

6. 检查并清理Docker资源(如使用Docker)

# 清理未使用的Docker对象
docker system prune -a --volumes

7. 检查大目录

# 查看/var目录占用情况
sudo du -sh /var/* | sort -h

# 查看/home目录占用情况
sudo du -sh /home/* | sort -h

8. 处理已删除但仍被占用的空间

# 查找被删除但仍被进程占用的文件
sudo lsof +L1

# 重启相关服务或系统以释放空间

9. 长期解决方案

  1. 设置磁盘配额:对用户或目录设置磁盘使用限制
  2. 监控系统:设置磁盘空间监控告警
  3. 日志管理:配置合理的日志轮转策略
  4. 扩容:考虑添加磁盘或扩容现有磁盘

10. 紧急情况处理

如果系统因磁盘满而无法操作,可以尝试:

  1. 删除/var/log下的部分日志文件
  2. 删除core dump文件(通常在/var/crash或/var/lib/systemd/coredump)
  3. 使用fallocate临时创建空间(如删除大文件后空间未释放)
# 创建临时文件释放inode(当inode用尽时)
fallocate -l 1G /tmp/tempfile && rm /tmp/tempfile

请根据实际情况选择适合的解决方案,重要文件删除前建议先备份。