插件窝 干货文章 Linux磁盘空间过大问题处理方法

Linux磁盘空间过大问题处理方法

文件 方法 bash 处理 959    来源:    2025-04-17

Linux磁盘空间过大问题处理指南

一、快速定位大文件/目录

  1. 使用du命令

    # 查看当前目录下各子目录大小
    du -h --max-depth=1 /
    
    # 按大小排序显示
    du -h / | sort -h -r | head -n 20
    
  2. 使用ncdu工具(需安装):

    ncdu /  # 交互式界面浏览磁盘使用情况
    
  3. 查找大文件

    find / -type f -size +100M -exec ls -lh {} + 2>/dev/null
    

二、常见大空间占用源及处理方法

1. 日志文件

  • 检查位置/var/log/
  • 处理方法

    # 查看日志文件大小
    ls -lh /var/log/
    
    # 清理旧日志
    journalctl --vacuum-size=100M  # systemd日志
    logrotate -f /etc/logrotate.conf  # 强制日志轮转
    
    # 清空特定日志文件
    > /var/log/syslog
    

2. 缓存文件

  • 检查位置/var/cache/
  • 处理方法

    # 清理包管理器缓存
    apt-get clean       # Debian/Ubuntu
    yum clean all       # CentOS/RHEL
    dnf clean all       # Fedora
    
    # 清理其他应用缓存
    rm -rf ~/.cache/*
    

3. 临时文件

  • 检查位置/tmp//var/tmp/
  • 处理方法bash # 清理超过30天的临时文件 find /tmp -type f -atime +30 -delete

4. 未正确删除的文件

  • 检查方法bash lsof | grep deleted # 查看被删除但仍被进程占用的文件
  • 处理方法:重启相关进程或系统

5. Docker容器相关

  • 检查方法bash docker system df # 查看Docker磁盘使用
  • 处理方法bash docker system prune -a # 清理无用镜像、容器等

三、长期管理建议

  1. 设置日志轮转

    • 编辑/etc/logrotate.conf配置文件
    • 为特定应用添加自定义轮转规则
  2. 监控工具

    • 使用df -h定期检查
    • 设置监控告警(如Zabbix、Prometheus)
  3. 分区策略

    • /var/home等易增长目录单独分区
    • 使用LVM便于后期扩容
  4. 自动化清理脚本

    # 示例清理脚本
    #!/bin/bash
    apt-get clean
    rm -rf /tmp/*
    journalctl --vacuum-time=1weeks
    

四、注意事项

  1. 删除文件前确认其用途
  2. 系统关键文件不要随意删除
  3. 生产环境操作前建议备份
  4. 考虑使用truncate而非直接删除,避免影响正在写入的文件

通过以上方法,您可以有效识别和处理Linux系统中的磁盘空间过大问题。如需更详细的特定情况分析,请提供df -hdu命令的具体输出。