当前位置: 首页 > news >正文

linux磁盘空间爆满排查与清理

一、系统化排查流程

1. 诊断流程图

可删除
需保留
磁盘空间告警
定位挂载点
df -h
Use% > 80%?
分析目录大小
du -h --max-depth=1 / | sort -hr
定位最大目录
查找大文件
find /var -type f -size +1G
确认大文件重要性
清理与优化
日志轮转/文件清理
归档或压缩
检查已删除文件
lsof | grep deleted
重启服务释放空间
检查其他分区

2. 关键命令矩阵

步骤命令示例功能说明输出关键列
定位挂载点df -h显示文件系统使用情况Use%, Mounted on
分析目录du -h --max-depth=1 / | sort -hr一级目录大小排序目录大小, 路径
查找大文件find /var -type f -size +1G -exec ls -lh {} \;查找大于1G的文件文件大小, 路径
检查已删文件lsof | grep deleted查看被删除但未释放的文件进程, 文件描述符
实时监控watch -n 5 'df -h'每5秒刷新磁盘使用实时使用率变化

二、进阶排查技巧

1. 日志文件专项处理

# 日志轮转配置示例(/etc/logrotate.d/tomcat)
/var/log/tomcat/*.log {dailyrotate 30compressmissingoknotifemptycreate 644 tomcat tomcatpostrotate/usr/bin/kill -HUP `cat /var/run/tomcat.pid 2>/dev/null` 2>/dev/null || trueendscript
}# 查找日志大文件并清理
find /var/log -name "*.log" -size +100M -exec ls -lh {} \;
find /var/log -name "*.log.?" -mtime +30 -delete

2. 自动化清理脚本

#!/bin/bash
# 磁盘空间安全清理脚本LOG_DIR="/var/log"
DAYS_TO_KEEP=7
SIZE_THRESHOLD="500M"
BACKUP_DIR="/backup/cleanup_$(date +%Y%m%d)"# 创建备份目录
mkdir -p $BACKUP_DIRecho "=== 开始磁盘清理 $(date) ==="# 1. 备份并清理旧日志
echo "清理超过${DAYS_TO_KEEP}天的日志文件..."
find $LOG_DIR -type f -name "*.log" -mtime +$DAYS_TO_KEEP | while read file; doecho "备份并删除: $file"gzip -c "$file" > "${BACKUP_DIR}/$(basename $file).gz"rm -f "$file"
done# 2. 清空过大的日志文件(保留最近内容)
echo "处理超过${SIZE_THRESHOLD}的大日志文件..."
find $LOG_DIR -type f -name "*.log" -size +$SIZE_THRESHOLD | while read file; doecho "清空大文件: $file"tail -n 1000 "$file" > "${file}.tmp" && mv "${file}.tmp" "$file"
done# 3. 清理临时文件(保留7天内)
echo "清理临时文件..."
find /tmp -type f -mtime +7 -delete 2>/dev/null
find /var/tmp -type f -mtime +7 -delete 2>/dev/null# 4. 清理软件包缓存
echo "清理包管理器缓存..."
apt-get clean 2>/dev/null || yum clean all 2>/dev/null# 5. 显示清理结果
echo "=== 清理完成 ==="
df -h | grep -v tmpfs

三、生产环境注意事项

1. 清理安全清单

可清理项风险等级建议操作检查命令
/tmp目录保留7天内文件find /tmp -type f -mtime +7 -ls
日志文件先备份再清理ls -la /var/log/*.log
软件包缓存可安全清理du -sh /var/cache/apt/
Docker资源确认无在用容器docker system df
系统缓存小心清理sync; echo 3 > /proc/sys/vm/drop_caches

2. 预防性措施

监控预警配置

# 添加到crontab,每天检查
#!/bin/bash
THRESHOLD=80
CURRENT=$(df / | awk 'NR==2{print $5}' | sed 's/%//')if [ $CURRENT -gt $THRESHOLD ]; thenecho "警告: 根分区使用率 ${CURRENT}%" | mail -s "磁盘空间告警" admin@company.com
fi

磁盘配额管理

# 设置用户配额示例
setquota -u username 50G 60G 0 0 /home# 检查配额使用
repquota -a

四、特殊场景处理

1. 已删除文件未释放空间

# 查找被删除但未释放的文件
lsof | grep deleted | sort -k7 -hr# 不重启服务释放空间(危险操作,谨慎使用)
for file in $(lsof | grep deleted | awk '{print $2":"$4}' | sort -u); dopid=$(echo $file | cut -d: -f1)fd=$(echo $file | cut -d: -f2 | tr -d 'rwu')echo "清理进程 $pid 的文件描述符 $fd": > /proc/$pid/fd/$fd
done# 安全做法:重启相关服务
systemctl restart apache2 mysql

2. LVM扩容操作流程

运维人员监控系统服务器LVM文件系统接收磁盘空间告警发送扩容通知登录服务器检查执行lvextend扩容lvextend -L +20G /dev/vg0/lv0扩展文件系统xfs_growfs /mount_point或 resize2fs /dev/vg0/lv0返回扩容结果确认扩容完成关闭告警运维人员监控系统服务器LVM文件系统

五、企业级解决方案

1. 存储架构建议

日志分离架构

# 单独日志分区挂载示例
/dev/sdb1   /var/log  xfs  defaults,noatime  0 0
/dev/sdb2   /opt/data xfs  defaults,noatime  0 0

自动化清理策略

# Ansible清理剧本示例
- name: 磁盘空间维护hosts: productiontasks:- name: 清理旧日志find:paths: "/var/log"patterns: "*.log.*"age: "7d"register: old_logs- name: 删除找到的旧日志file:path: "{{ item.path }}"state: absentwith_items: "{{ old_logs.files }}"

2. 推荐工具集

工具名称适用场景特点安装命令
ncdu交互式磁盘分析可视化导航,支持远程apt install ncdu
gt5目录历史对比追踪目录增长趋势yum install gt5
iotopIO监控定位高IO进程apt install iotop
dust现代化du替代彩色输出,更直观cargo install du-dust

重要安全提示

  1. 备份优先: 任何删除操作前务必确认文件重要性,建议首次操作在测试环境验证
  2. 渐进清理: 采用"查看-备份-移动-删除"的渐进式清理策略
  3. 监控验证: 清理后持续监控磁盘使用情况,确保问题真正解决
  4. 文档记录: 记录清理操作内容和时间,便于审计和问题追溯

紧急恢复命令:

# 如果误删重要文件,立即停止写入并尝试恢复
echo 1 > /proc/sys/vm/drop_caches  # 清除缓存避免覆盖
extundelete /dev/sda1 --restore-all  # 尝试恢复删除的文件
http://www.dtcms.com/a/432525.html

相关文章:

  • 可以申请域名的网站出口外贸论坛
  • 哪个网站有学做内帐的视频网站网页制作的步骤是什么
  • 教育培训网站排名自己制作网站需要什么
  • 大学网站建设排名网站logo也叫做网站的
  • 数据结构——栈和队列(模拟实现)
  • 福州网站设计大概费用微信商家小程序怎么弄
  • 建设网站的需求分析报告凡客诚品市场份额
  • wordpress liveseo排名优化推广
  • 公司做网站需要什么手续吗网站注册步骤
  • 家居饰品网站建设论文wordpress注册跳过邮箱验证码
  • 视频网站 费用网站文档设置index.php
  • GESP 五级(高精度+初等数论)
  • 建设宣传家乡的网站没有服务器做网站
  • 大连网站制作的公司在pc端网站基础上做移动端
  • 阿里巴巴网站备案号麻将app软件开发
  • 曲靖企业网站做网站需要先申请域名
  • 基于51单片机的空气质量检测PM2.5粉尘检测设计
  • JDK源码之System
  • 专门做婚纱儿童摄影网站wordpress装多个博客
  • Mosquitto Broker源码分析
  • 重庆公司网站seowordpress主题的使用
  • 上海电子商务网站开发用文本文档做网站
  • 熊掌号做网站推广的注意事项怎么做网页站点
  • C#基础03-JIT和GC
  • 安徽省建设工程造价信息网站wordpress 删除小工具
  • 网站推广计划方法如何查询网址的注册信息
  • 太原网站制作优化seo调整百度对网站的最大天级抓取频次值
  • 重庆知名网站建设公司网站设计方案案例分析
  • 一般做个网站需要多少钱wordpress显示缩略图
  • Drawio 在软件开发中的应用实践