当前位置: 代码网 > 服务器>服务器>Linux > Linux中磁盘空间爆满的3步快速定位+清理方案

Linux中磁盘空间爆满的3步快速定位+清理方案

2026年04月17日 Linux 我要评论
前言生产环境磁盘空间爆满是运维工作中的常见紧急故障。本文分享快速定位大文件、安全清理空间的实战方案。问题影响磁盘空间100%会导致:应用无法写入日志,服务异常数据库无法写入,事务失败系统无法创建临时文

前言

生产环境磁盘空间爆满是运维工作中的常见紧急故障。本文分享快速定位大文件、安全清理空间的实战方案。

问题影响

磁盘空间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磁盘空间爆满定位与清理的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com