原创

新手指南:如何解决 Linux 服务器 `df -h` 显示 100% 磁盘使用率问题

温馨提示:
本文最后更新于 2025年07月12日,已超过 13 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一、引言

当 Linux 服务器使用 df -h 命令检查磁盘空间时,如果发现某个分区的使用率达到 100%,系统可能出现性能下降、服务中断等风险。
本文将为新手提供一套清晰、可执行的磁盘清理和拓展方案,帮助快速恢复可用空间。

二、检查磁盘使用情况

  1. 查看整体磁盘使用:

    df -h
    `
    
  2. 检查 inode 使用:

    df -i
    
  3. 确定哪个挂载点已满,并记录挂载路径(如 //var/home)。

三、定位大文件和目录

  1. 使用 du 排序查询大目录:

    du -h / | grep -E "[0-9\.]+G" | sort -nr | head -n 20
    
  2. 如果只关注某个分区,指定挂载点:

    du -h /var | sort -nr | head -n 20
    
  3. 进入高占用目录,进一步缩小范围,找到真正的大文件。

四、日志文件清理

  1. 定位日志目录(通常在 /var/log):

    ls -lh /var/log
    
  2. 清理或压缩过大的日志:

    > /var/log/syslog       # 清空文件
    gzip /var/log/*.log    # 压缩旧日志
    
  3. 配置 logrotate,自动归档并删除超过一定保留天数的日志。

五、清理包管理器缓存

  • Debian/Ubuntu

    sudo apt-get clean
    sudo apt-get autoremove -y
    
  • CentOS/RHEL

    sudo yum clean all
    sudo package-cleanup --oldkernels --count=1  # 删除旧内核
    

六、清理临时文件

  1. 清空 /tmp

    sudo rm -rf /tmp/*
    
  2. 按计划定期清理:
    将以下行加入 /etc/crontab

    0 2 * * * root find /tmp -type f -mtime +7 -delete
    

七、Docker 容器与镜像清理(如适用)

sudo docker system prune -a --volumes  # 删除所有未使用的容器、镜像和数据卷

八、扩展磁盘空间或调整分区(高级操作)

  1. 在线扩容云盘:根据云厂商控制台操作。
  2. 使用 fdiskpvresizelvextendresize2fs 等工具调整 LVM 分区。

    注意:生产环境操作前务必备份,并确认无业务高峰时段。

九、监控与预防

  • 安装 ncdu:交互式查看空间占用。

    sudo apt-get install ncdu
    ncdu /
    
  • 配置磁盘告警:使用 Zabbix、Prometheus+Alertmanager 等监控工具,当使用率超过阈值(如 80%)时自动报警。

十、总结

通过定位大文件、清理日志和缓存、定期维护以及必要时扩容,能够有效解决并预防 Linux 服务器磁盘爆满问题。新手只需按步骤操作,即可快速恢复可用空间并保障服务器稳定运行。


正文到此结束
本文目录