130 lines
4.0 KiB
Markdown
130 lines
4.0 KiB
Markdown
# 磁盘与文件占用(`kopsc disk <子命令>`)
|
||
|
||
> 返回 [README.md](README.md)
|
||
|
||
看哪个目录、哪个文件最占空间,查看 inode 使用,一键磁盘健康检查。
|
||
|
||
```bash
|
||
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`:
|
||
|
||
```text
|
||
$ 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)
|
||
|
||
```bash
|
||
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)
|
||
|
||
```bash
|
||
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` | 检查所有挂载点 |
|