下载工作台
Linux 与 Shell 入门

磁盘、挂载与空间排查

试读上半部分 · 解锁后可读全文

第 9 章 · 磁盘、挂载与空间排查

本章目标:用 df/du 判断「盘满了还是 inode 满了」;找到 shop-demo / 日志里的大文件;理解 logrotate 为何防止日志撑爆磁盘;为 ch10 读日志、ch04 超大 api.log .cleanup 打基础。

学时建议:3~4 小时(含 2 小时跟练)

前置:完成 linux-shell ch08(可选:已在远端有 shop-demo)。


9.1 场景说明:服务突然不能写日志也不能建表

测试环境 api-go-demo 一夜告警沉默。SSH 上去:

  • systemctl status api-go-demo 可能仍显示 running
  • curl healthz 超时或 500
  • 开发 touch /tmp/testNo space left on device

运维老手第一反应不是重启,而是:

df -h
df -i

本章教你区分 容量满(GB)inode 满(小文件太多),并在 ~/dev-workspace 里模拟排查。


9.2 学完你能

能力验收
df读出 Use%、Mounted on
du找出 dev-workspace 下最大子目录
inode解释 df -i 100% 时 du 还有空间
find找 >10M 大文件
logrotate读一条配置,知日志为何会 .1 .gz
应急知删日志后仍满要 truncate / 重启进程

9.3 df:看分区「还剩多少 GB」

步骤 1

df -h

你应该看到类似:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G   12G   26G  32% /

读懂列

含义
Size / Used / Avail总 / 已用 / 可用(人类可读 -h
Use%超过 90% 要警惕
Mounted on挂载点;/ 是根分区

步骤 2 — 只看根分区

df -h /

步骤 3 — WSL 用户

WSL 的 df 有时显示 ext4.vhdx,满的是虚拟磁盘——仍用 du 找大目录清理。


9.4 df -i:inode 满(新手大坑)

步骤 1

df -i
df -ih /

你应该看到 IUse% 列。若 100%,即使 df -h 还有 GB 空闲,也无法创建新文件

为什么:ext4 为每个文件分配一个 inode;百万小文件(缓存、session、错误日志碎片)会耗尽 inode。

典型症状

  • 报错 No space left on device
  • du -sh /* 加起来远小于磁盘 Size

步骤 2 — 谁 inode 多(选修,可能慢)

sudo find /var/spool /tmp ~/dev-workspace -xdev -type f 2>/dev/null | wc -l

9.5 du:谁占用了空间

步骤 1 — 家目录总占用

du -sh ~
du -sh ~/dev-workspace

步骤 2 — 分解 dev-workspace

du -h --max-depth=1 ~/dev-workspace | sort -hr

你应该看到类似:

120M    shop-demo
45M     logs
2.1M    linux-notes

读懂sort -hr 按人类可读大小降序——最大的是谁一眼看出。

步骤 3 — 跟练:故意制造大日志(教学)

mkdir -p ~/dev-workspace/logs
# 追加 50MB(约 1 分钟,可 Ctrl+C 提前停)
dd if=/dev/zero of=~/dev-workspace/logs/big-teaching.log bs=1M count=50 status=progress
du -sh ~/dev-workspace/logs
df -h /

步骤 4 — 清理练习

rm ~/dev-workspace/logs/big-teaching.log
du -sh ~/dev-workspace/logs

为什么 先 du 再 rm:生产禁止 rm -rf /;删前 pwd、路径写全。


以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。