< 返回

    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 服务器磁盘空间查看标准流程

    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 等特殊负载,欢迎回复,我们可以一起探讨。

    联系我们
    返回顶部