#btrfs #snapshot #key #send-receive #stream #parser #btsdu

btrfs-send-parse

解析 btrfs 发送/接收流的库

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 7 月 6 日

#1546文件系统


用于 btsdu

GPL-2.0 许可证

19KB
563 代码行

Btrfs 快照磁盘使用分析器 (btsdu)

此工具可以显示在快照之间数据变化最大的文件夹。只需运行

btsdu -p /snapshots/old_snapshot /snapshots/new_snapshot

您将获得一个可导航的分解,在 NCDu 界面中。

ncdu 1.13 ~ Use the arrow keys to navigate, press ? for help
--- /home/roman ---------------------------------------------------
                         /..
   42.5 MiB [##########] /.config
   23.2 MiB [#####     ] /.IdeaIC2017.2
   12.3 MiB [##        ] /.vscode
   10.0 MiB [##        ] /projects
    9.5 MiB [##        ] /.thunderbird
  297.3 KiB [          ] /.local
   20.0 KiB [          ] /.java
e   8.0 KiB [          ] /.bash_history
    4.0 KiB [          ] /.pulse
e 293.0   B [          ] /.bashrc

安装

使用 Rust 软件包管理器 cargo

cargo install btsdu

如果 cargo 的 bin 目录在您的路径中,您可以立即运行 `btsdu`。您还需要 NCDu(应通过您的发行版打包)以正确显示结果。

限制

  • 显示未压缩的大小
  • 不考虑重链接的文件/范围和硬链接
  • 显示磁盘使用情况,只是实际数据(在 NCDu 中称为“表观大小”)。显示的磁盘和表观大小将相等。

技术

该工具使用 btrfs send 获取两个快照之间的差异,然后构建更改数据的文件级大小汇总。输出以 NCDu 显示工具理解的格式打印。

当然,您也可以使用您自己的源中的 btrfs send/receive 流转储,有关详细信息,请参阅 --帮助。也可以不运行 NCDu,只显示底层数据。它以相当合理的 JSON 格式显示,可以进一步处理。

依赖项

~120KB