< 返回
Debian 服务器磁盘空间查看方法
2026-02-20 17:28
作者:技术部
阅读量:4
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 服务器磁盘空间查看标准流程
- df -h --total → 看全局,哪个分区快满了
- sudo ncdu /var 或 / → 交互定位罪魁祸首(最常用)
- journalctl --disk-usage + du -sh /var/cache/apt → 检查 Debian 两大常见坑
- 清理后再次 df -h 验证
- 考虑设置 journal 持久化限制 + unattended-upgrades 自动清理缓存
掌握这个顺序,你能在 2–5 分钟内定位 95% 的磁盘满问题。
如果你的服务器当前具体卡在哪个分区(/var /home / 还是其他),或者有 Docker/Kubernetes 等特殊负载,欢迎回复,我们可以一起探讨。