#目录树 #元数据 #zfs #内部 #收集 #哈希 #重新压缩

app zfs-recompress

一个用于重新压缩 ZFS 目录树以及收集其中文件元数据的简单程序

1 个不稳定版本

0.1.0 2024 年 7 月 21 日

#391文件系统

Download history 98/week @ 2024-07-17 28/week @ 2024-07-24 4/week @ 2024-07-31

130 每月下载量

GPL-2.0-only

24KB
326

zfs-recompress

一个用于重新压缩 ZFS 目录树以及收集其中文件元数据的简单程序。基本上是 这个 的多线程(且更内存高效)版本。

警告

此软件实际上会重写目录树中的每个文件。请先进行备份以防止数据丢失!

用法

有关编译和使用 Rust 程序的一般信息,请参阅 Rust 文档的相关部分

此程序将遍历目录树,并为每个文件创建一个副本(以触发 ZFS 压缩),验证其完整性,然后覆盖原始文件。当然,如果您有很多文件,这将需要一些时间!

可选地,您还可以在重新压缩的同时收集目录树中所有文件的某些元数据(uid、gid、文件大小和哈希)到 SQLite 数据库中。这可以非常有助于找到具有 问题 文件管理习惯的用户。要启用元数据收集,请使用 --files-db 选项并指定写入 SQLite 数据库的路径。

一般用法

zfs-recompress [OPTIONS] <ROOT_DIR>

其他选项包括

  • --force 以覆盖通过 --files-db 指定位置上的任何现有数据库
  • --no-recompress 跳过重新压缩,仅收集元数据
  • --skip-compressed 避免重新压缩看起来已经被 ZFS 压缩的文件(注意:如果您仍然想在元数据数据库中获取这些文件的哈希值,请使用 --force-hash!)
  • --batch-size 指定一次分配给单个线程的文件数量(如果您有非常大的文件,您可能需要减少此值以启用更好的并行处理)
  • --worker-threads 指定并行运行的线程数(这强烈取决于 I/O 速度和您的 CPU 计算哈希的速度)

请查阅 zfs-recompress --help 以获得所有用法选项的完整概述。

许可证

与原始版本类似,此软件在 GPLv2 许可证下作为免费软件发布。您可以在 LICENSE 文件中找到此许可证的详细信息。

依赖项

~39MB
~652K SLoC