网宝
新闻中心 / / 正文

Debian 服务器磁盘空间查看方法

2026-02-20 17:28
技术部
← 返回

Debian 服务器磁盘空间问题通常出现在日志增长、缓存堆积、数据库膨胀或意外大文件时。高效查看磁盘空间的核心是:先概览 → 再定位 → 最后分析,而非盲目删除文件。

现代 Debian(12/13)环境下,查看磁盘空间的工具链已经非常成熟,结合 cgroup v2 日志持久化 后,/var/log/journal 也成为常见占用点。

1. 概览层面:快速看整体使用情况(必备第一步)

df 是查看文件系统空间的首选工具,永远从这里开始。

最常用组合(几乎所有服务器管理员每天都会敲):

  • df -h:人类可读格式(GB/MB),最直观
  • df -h -T:同时显示文件系统类型(ext4 / xfs / btrfs 等)
  • df -h --total:在最后加一行总计(非常实用)
  • df -i:检查 inode 使用率(空间够但无法创建文件时必看)

为什么优先 df? 它直接反映内核视角的挂载点占用,包含 tmpfs、overlay 等虚拟文件系统,不会漏掉隐藏占用。

常见高占用分区(服务器场景):

  • /
  • /var
  • /var/log
  • /home(如果有用户数据)

2. 定位层面:找出哪个目录吃空间最大

du 是分析目录大小的核心工具,但原始 du 速度慢、输出乱。推荐加参数优化:

  • du -sh /* 2>/dev/null | sort -hr | head -15 → 查看根目录下前 15 大目录(排除权限错误)
  • du -sh /var/* 2>/dev/null | sort -hr → 聚焦 /var(日志、缓存、数据库最常在这里爆炸)
  • du -sh --time /var/log/* | sort -hr → 带修改时间,帮助判断是旧日志还是新增长

注意:du 计算的是实际占用块,可能比 ls 显示的大(因为 sparse 文件、硬链接等)。

3. 交互式神器:ncdu(强烈推荐安装)

ncdu(NCurses Disk Usage)是 Debian 服务器上最受欢迎的磁盘分析工具,几乎所有中高级管理员都会第一时间装。

为什么 ncdu 这么受欢迎?

  • 交互界面(上下键浏览、d 删除、? 帮助)
  • 实时计算大小,支持跨文件系统
  • 显示百分比、进度条
  • 支持删除操作(慎用 root 权限)
  • 比 du 快很多(增量扫描)

安装:sudo apt install ncdu

常用启动方式:

  • sudo ncdu / → 全盘扫描(最全面)
  • sudo ncdu /var → 聚焦日志/缓存
  • ncdu --exclude /proc --exclude /sys / → 跳过虚拟文件系统

扫描完成后,按 ? 查看快捷键:

  • d 删除当前选中项
  • b 打开文件浏览器查看内容
  • i 显示详细信息

4. Debian 特有高频占用点检查

位置 常见原因 专用查看/清理命令 典型大小(生产环境)
/var/log/journal systemd-journald 持久化日志 journalctl --disk-usage 几百 MB ~ 几十 GB
/var/cache/apt/archives apt 下载的 .deb 包缓存 sudo apt clean 或 du -sh /var/cache/apt 几百 MB ~ 几 GB
/var/tmp / tmp 临时文件、构建缓存 du -sh /tmp /var/tmp 视使用情况
/var/lib/docker Docker 镜像/容器/卷(如果用了) docker system df 容易几十 GB
/var/lib/mysql 或 postgresql 数据库数据文件增长 数据库自带工具 + du -sh /var/lib/mysql 视业务
 
 

journal 日志清理(最常见操作):

  • journalctl --vacuum-time=2weeks → 只保留 2 周
  • journalctl --vacuum-size=500M → 限制总大小 500 MB
  • journalctl --vacuum-files=100 → 最多保留 100 个文件

5. 进阶与监控建议(预防胜于治疗)

  • inode 耗尽(空间够但写不了文件):df -i + find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n 找小文件最多的目录
  • 被删除但仍占用空间的文件:lsof +L1 或 sudo lsof | grep deleted
  • 长期监控:Netdata(实时 Web 仪表盘,含磁盘预警)、Cockpit(简单 Web 界面)、Prometheus Node Exporter + Grafana(企业级)
  • 自动化告警:写简单脚本 + cron,每小时 df -h | grep -E '9[0-9]%' 发邮件或推送到 Slack/企业微信

总结:Debian 服务器磁盘空间查看标准流程

  1. df -h --total → 看全局,哪个分区快满了
  2. sudo ncdu /var 或 / → 交互定位罪魁祸首(最常用)
  3. journalctl --disk-usage + du -sh /var/cache/apt → 检查 Debian 两大常见坑
  4. 清理后再次 df -h 验证
  5. 考虑设置 journal 持久化限制 + unattended-upgrades 自动清理缓存

掌握这个顺序,你能在 2–5 分钟内定位 95% 的磁盘满问题。

 

如果你的服务器当前具体卡在哪个分区(/var /home / 还是其他),或者有 Docker/Kubernetes 等特殊负载,欢迎回复,我们可以一起探讨。

QQ客服 提交工单