返回

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

原创
admin的头像admin·发布于 2025-07-12 23:26·阅读 20

一、引言

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

二、检查磁盘使用情况

  1. 查看整体磁盘使用:
    bash 复制代码
    df -h
复制代码
2. 检查 inode 使用:

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

#### 三、定位大文件和目录

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

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

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

#### 四、日志文件清理

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

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

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

#### 五、清理包管理器缓存

* **Debian/Ubuntu**:

  ```bash
  sudo apt-get clean
  sudo apt-get autoremove -y
  ```
* **CentOS/RHEL**:

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

#### 六、清理临时文件

1. 清空 `/tmp`:

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

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

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

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

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

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

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

#### 九、监控与预防

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

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

#### 十、总结

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

---
作者的其他文章
深入浅出 JVM 调优:看完你就懂!
一文带你掌握2025最新 JVM 调优技巧,从容应对性能问题。
深入浅出 JVM 调优:看完你就懂!
Linux网络——NFS共享服务
Linux 网络 ——NFS 共享服务
SpringBoot学习笔记
springboot学习笔记
SpringBoot学习笔记