1 个不稳定版本
0.1.0 | 2024 年 7 月 21 日 |
---|
#391 在 文件系统
130 每月下载量
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