2 个版本
0.1.1 | 2021年1月29日 |
---|---|
0.1.0 | 2021年1月29日 |
#1054 in 文件系统
41KB
772 行
inventorize
inventorize
是一个用于数据完整性验证的命令行工具。
简而言之,inventorize
会构建一个目录(存储库)中文件的 清单。该清单包含文件的路径和哈希值。以后,可以使用 inventorize
将清单记录与存储库的实际内容进行比较,通过比较它们的哈希值来验证文件的完整性。
快速入门指南
使用 inventorize
主要包括三个操作
- 构建清单文件;
- 定期使用清单文件验证存储库的内容;
- 当存储库中添加新文件或删除旧文件时更新清单(这不会重新计算现有清单记录的哈希值)。
清单文件不得存储在存储库目录内部。
关于所有可用的命令行选项和命令的详细描述,请参阅以下参考资料。
构建清单
使用 build
子命令构建清单
inventorize
--repository /path/to/the/repo
--inventory /path/to/the/inventory.json
build
验证存储库内容
使用 verify
子命令使用现有的清单文件验证存储库的内容
inventorize
--repository /path/to/the/repo
--inventory /path/to/the/inventory.json
verify
更新清单
使用 update
子命令在存储库中添加文件时更新清单
inventorize
--repository /path/to/the/repo
--inventory /path/to/the/inventory.json
update
参考资料
所有子命令接受的命令行选项
--repository
:存储库的路径(默认为当前工作目录)。--inventory
:清单文件的路径。--verbose
:详细模式。
build
子命令
build
子命令用于构建清单。
默认情况下,此子命令将包括隐藏文件在清单中。如果清单文件存在,它将报告错误。
默认的哈希算法是 md5
。特别偏执的用户可以选择多个哈希算法
--hash-algorithm=md5 --hash-algorithm=sha1
支持的选项
--overwrite
:如果存在,则覆盖清单文件。--skip-hidden
:不要在清单中包括隐藏文件。--hash-algorithm=<ALG>
:要使用的哈希算法。
支持的哈希算法
md5
sha1
verify
子命令
verify
子命令用于使用现有清单验证存储库内容。如果发现任何缺失、添加或更改的文件,将返回错误。
默认情况下,检查清单中包含的所有哈希值。或者,可以启用 快速模式,只检查文件的存在及其大小。不言而喻,这种模式不应被视为可靠的完整性检查。
支持的选项
--quick
快速模式:只检查文件的存在及其大小。
update
子命令
update
子命令在清单构建后更新包含在存储库中的文件。它 从不 重新计算现有清单记录的哈希值。
从存储库中删除但仍在清单中存在的文件默认情况下不会被从清单中删除。
支持的选项
--remove-missing
:从清单中删除在存储库中找不到的文件。
清单文件格式
清单存储为包含 记录(文件路径及其哈希值)的 JSON 文件,以及元数据(构建清单的应用程序版本和 build
子命令选项)。
依赖项
~5–14MB
~149K SLoC