CentOS7系统根目录存储满了:高效排查与解决方案
现象识别与初步诊断
当执行系统操作时出现"No space left on device"错误提示,或通过df -h
命令显示根分区(/
)使用率达到100%时,需立即执行以下诊断步骤:
# 查看各分区使用情况
df -h
# 定位存储占用最大的目录
du -sh /* 2>/dev/null | sort -rh | head -n10
常见问题根源分析
1. 日志文件膨胀
/var/log目录下的系统日志、应用日志未配置轮转策略时可能快速膨胀,通过以下命令清理:
journalctl --vacuum-size=200M
rm -f /var/log/messages-*
2. 软件包缓存堆积
YUM/DNF包管理器缓存可能占用数GB空间,执行清理命令:
yum clean all
dnf clean packages
3. 内核文件冗余
旧版本内核残留文件可通过以下方式清理:
# 查看已安装内核包
rpm -q kernel
# 清理旧内核(保留最近2个版本)
package-cleanup --oldkernels --count=2
高级定位技巧
# 查找大于100MB的文件
find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null
# 分析指定目录的存储分布
ncdu -x /
存储扩容方案
当物理存储无法扩展时,可通过以下方式缓解:
- 挂载新存储设备到/home等独立目录
- 使用LVM动态调整分区大小
- 配置日志服务启用压缩和自动轮转
预防性维护建议
- 配置logrotate实现日志自动轮转
- 设置磁盘空间监控告警
- 将大容量目录(/opt、/home)独立分区
- 定期执行yum autoremove清理依赖