3 个不稳定版本
0.2.1 | 2024年6月20日 |
---|---|
0.2.0 | 2023年12月17日 |
0.1.0 | 2023年7月24日 |
#626 in 命令行工具
130 每月下载量
17KB
317 代码行
rotsniff
rotsniff 是一个用于编目文件及其哈希值以检测损坏或丢失文件的工具。
它受到了 scorch 的启发,并且数据库格式与 数据库 类似,但在此阶段不要期望有任何兼容性。
Usage: rotsniff [OPTIONS] <COMMAND>
Commands:
append Add files not found in the database
remove Remove entries from the database that no longer exists
update Update entries in the database for files that have changed
verify Verify that all files in the database are intact, and that all files have entries in the database
help Print this message or the help of the given subcommand(s)
Options:
--db <FILE> Path to the database file [default: ./rotsniff.db]
-v, --verbose Make `command` more verbose. Actual behavior depends on the command
-f, --fnfilter <FNFILTER> Restrict commands to files which match regex
-F, --negate-fnfilter Negate the fnfilter regex match
-h, --help Print help
-V, --version Print version
安装
您可以直接从 crates.io 安装最新标记版本,执行以下命令。
cargo install rotsniff
示例
% mkdir foo
% echo 'Hello, World!' > foo/hello
% rotsniff -v append foo
foo/hello: blake2b:94D8520FE182ADD62BEC85B531A17A779FCD39F23248CFABD18347B86CE9F8B73A0C151DD7CE171843DD8A14E5329DDE6B73149D26D6638E94EF4C634F3F1A7B
% rotsniff -v verify foo
MATCH: foo/hello
% echo 'Goodbye!' > foo/hello
% rotsniff -v verify foo
MODIFIED: foo/hello
% rotsniff -v update
UPDATED: foo/hello
% rm foo/hello
% touch foo/new
% rotsniff -v verify foo
FILE NOT FOUND: foo/hello
NOT FOUND IN DB: foo/new
% rotsniff -v append foo
foo/new: blake2b:786A02F742015903C6C6FD852552D272912F4740E15847618A86E217F71F5419D25E1031AFEE585313896444934EB04B903A685B1448B755D56F701AFE9BE2CE
% rotsniff -v verify foo
FILE NOT FOUND: foo/hello
MATCH: foo/new
% rotsniff -v remove
REMOVED: foo/hello
% rotsniff -v verify foo
MATCH: foo/new
数据库
数据库是一个使用 gzip 压缩的简单 CSV 文本文件,以确保未来兼容性,并方便其他软件在需要时解析。
% rotsniff -v append foo
foo/test: blake2b:7DFDB888AF71EAE0E6A6B751E8E3413D767EF4FA52A7993DAA9EF097F7AA3D949199C113CAA37C94F80CF3B22F7D9D6E4F5DEF4FF927830CFFE4857C34BE3D89
% zcat < rotsniff.db
foo/test,blake2b:7DFDB888AF71EAE0E6A6B751E8E3413D767EF4FA52A7993DAA9EF097F7AA3D949199C113CAA37C94F80CF3B22F7D9D6E4F5DEF4FF927830CFFE4857C34BE3D89
当前格式为 file,hash:digest
,但将来可能会增加更多数据。目前唯一支持的哈希函数是 BLAKE2b。
依赖项
~6–16MB
~187K SLoC