Files
kenaito-kopsc/README.disk.md
T

4.0 KiB
Raw Blame History

磁盘与文件占用(kopsc disk <子命令>)

返回 README.md

看哪个目录、哪个文件最占空间,查看 inode 使用,一键磁盘健康检查。

kopsc disk usage                     # 当前目录的占用排行(路径可省略)
kopsc disk usage /var                # 指定目录
kopsc disk usage /var --depth 2      # 下钻一层
kopsc disk inode                     # 查看 inode 使用情况
kopsc disk check                     # 一键磁盘健康检查
kopsc disk check /var                # 检查指定路径
kopsc disk check --all               # 检查所有挂载点

命令一览

命令 作用
kopsc disk usage [路径] 查看目录占用排行
kopsc disk inode [路径] 查看 inode 使用情况
kopsc disk check [路径] 一键磁盘健康检查

磁盘占用排行(disk.usage)

kopsc disk usage [路径] 等价于 du -x --max-depth=1 -h <路径> | sort -hr:

$ kopsc disk usage /var
1.2G     /var/lib
800.0M   /var/cache
4.0K     /var/tmp
0        /var/opt
总计      2.0G     /var
  • 路径可省略,缺省为当前目录;也可用位置参数(/var)或 --path /var、--path=/var,一次一个。
  • --depth N(-d N / --depth=N)控制列出到第几层,默认 1(只看直接子项); --depth 2 会下钻一层,未下钻的目录仍按递归大小算。
  • 统计每个条目:普通文件按自身大小,目录递归累计其下普通文件的大小;每个文件只计一次, 合计不会因加深度而重复。
  • 不跟随符号链接;Unix 上通过设备号实现 -x(不跨文件系统),Windows 上不跟随 reparse point,目录遍历本身不会跨越卷。
  • 输出按大小降序,大小采用与 du -h 相同的二进制单位(1.0K、1.5M、2.0G)。
  • 末尾输出该路径的合计行。

选项

选项 说明
[路径] / --path <路径> / --path=<路径> 要统计的目录,默认当前目录
--depth N / -d N / --depth=N 列到的层数,默认 1;必须大于 0

--path、--depth 是 kopsc 自己的选项,不是 du 的参数,因此可以写在任意位置。

inode 使用查看(disk.inode)

kopsc disk inode                  # 当前文件系统
kopsc disk inode /var             # 指定路径所在文件系统

显示文件系统的 inode 使用统计。inode 耗尽会导致无法创建新文件,即使磁盘空间充足。

输出示例:

Filesystem      Inodes   IUsed   IFree IUse% Mounted on
/dev/vda1      3276800  180432 3096368    6% /
平台 实际执行
Linux / macOS df -i
Windows 不支持(NTFS 使用 MFT,无 inode 概念)

一键磁盘健康检查(disk.check)

kopsc disk check                  # 检查根目录
kopsc disk check /var             # 检查指定路径
kopsc disk check --all            # 检查所有挂载点

一条命令完成磁盘排障,综合检查 5 项内容:

输出示例:

=== 磁盘健康检查 ===

[1/5] 空间使用
  /dev/vda1  50G 总计  22G 已用  28G 可用  44% 使用率  ✓ 正常

[2/5] inode 使用
  /dev/vda1  3.2M 总计  180K 已用  3.0M 可用  5% 使用率  ✓ 正常

[3/5] 大文件 TOP 5(>100M)
  2.1G  /var/log/syslog
  1.5G  /var/lib/docker/overlay2/...
  800M  /opt/app/data.db

[4/5] 大目录 TOP 5
  15G   /var/lib/docker
  2.3G  /var/log
  1.2G  /opt/app

[5/5] 建议
  ✓ 磁盘空间充足
  ✓ inode 使用正常

检查项目

项目 说明
空间使用 磁盘使用率,>80% 警告,>90% 危险
inode 使用 inode 使用率(Unix only)
大文件 列出 >100M 的文件 TOP 5
大目录 列出直接子目录占用 TOP 5
建议 根据检查结果给出清理建议

选项

选项 说明
[路径] 要检查的路径,默认 /
--all / -a 检查所有挂载点