Linux中磁盘空间爆满的3步快速定位+清理方案
更新时间:2026年04月17日 08:33:48 作者:用户545842986958
生产环境磁盘空间爆满是运维工作中的常见紧急故障,本文分享l快速定位大文件并安全清理空间的实战方案,有需要的小伙伴可以跟随小编器学习一下
前言
生产环境磁盘空间爆满是运维工作中的常见紧急故障。本文分享快速定位大文件、安全清理空间的实战方案。
问题影响
磁盘空间100%会导致:
- 应用无法写入日志,服务异常
- 数据库无法写入,事务失败
- 系统无法创建临时文件,进程崩溃
应急处理流程
1. 快速定位大文件
查看根目录各分区占用:
df -h
定位占用最大的目录:
du -h --max-depth=1 / | sort -hr | head -10
查找大于1GB的文件:
find / -type f -size +1G -exec ls -lh {} \;
2. 日志文件清理
方案A:清空日志内容(保留文件)
# 清空单个日志 > /var/log/syslog # 批量清空 for log in /var/log/*.log; do > $log; done
方案B:删除旧日志
# 删除7天前的日志 find /var/log -name "*.log" -mtime +7 -delete # 删除压缩日志 find /var/log -name "*.gz" -mtime +7 -delete
方案C:配置日志轮转
# /etc/logrotate.d/custom
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
}
3. Docker垃圾清理
查看Docker占用:
docker system df
清理未使用的资源:
# 清理所有未使用的镜像、容器、网络、卷 docker system prune -a --volumes # 仅清理悬空镜像 docker image prune # 清理停止的容器 docker container prune
4. 其他清理方案
清理包管理器缓存:
# Ubuntu/Debian apt-get clean apt-get autoclean # CentOS/RHEL yum clean all
清理临时文件:
rm -rf /tmp/* rm -rf /var/tmp/*
实战案例
某次生产环境磁盘爆满,通过以下步骤快速恢复:
# 1. 定位问题 df -h # 发现 /var 分区 100% du -h --max-depth=1 /var | sort -hr # 2. 发现 /var/log 占用 80GB cd /var/log ls -lh | sort -k5 -hr | head -10 # 3. 发现 nginx/access.log 50GB > nginx/access.log # 清空日志 # 4. 配置日志轮转,防止再次爆满
预防措施
1. 监控告警
# 磁盘使用率超过80%告警
df -h | awk '$5+0 > 80 {print $0}'
2. 定时清理
# crontab 每天凌晨2点清理7天前日志 0 2 * * * find /var/log -name "*.log" -mtime +7 -delete
3. 日志轮转 确保所有应用日志都配置了logrotate。
总结
- 紧急情况:先清日志,能快速腾出空间
- Docker环境:定期执行
docker system prune - 长期方案:配置日志轮转+监控告警
掌握这套流程,磁盘爆满问题5分钟搞定。
以上就是Linux中磁盘空间爆满的3步快速定位+清理方案的详细内容,更多关于Linux磁盘空间爆满定位与清理的资料请关注脚本之家其它相关文章!
相关文章
浅谈Linux配置定时,使用crontab -e与直接编辑/etc/crontab的区别
下面小编就为大家带来一篇浅谈Linux配置定时,使用crontab -e与直接编辑/etc/crontab的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-11-11


最新评论