fs-hasher:将文件切分为小的chunk并且赋予hash值
格式:
- ./fs-hasher [-bdemMq] -p path -o hash_file -c chunking_method [-C chunking_options] -h hashing_method -z compression_method
- 示例:
参数:
- -p:读取文件的路径
- -c:选择chunking method,共有两种可选——fixed和variable
- -C:chunking method的参数
-C参数 | chunk method | 用法 |
---|---|---|
csize=chunk_size | fixed | 设定chunk的大小,默认为4096bytes |
tails=on/off | fixed/variable | 是否将最后一个chunk的hash存储到hashfile里,默认为on |
algo=random/simple/rabin | variable | 默认为rabin |
win_size=window_size | variable -C algo=rabin | 默认48bytes |
match_bits=number_of_bits | variable | 设定在variable中使用的bits数,默认为13bits,对应于2^13=8192bytes的chunk大小 |
pattern=pattern | variable | 16进制数,默认为(0x1fff)16=(8191)10 |
min_csize=minimum_chunk_size | variable | 在variable chunking中所允许的最小chunk大小,默认为2048bytes |
max_csize=maximum_chunk_size | variable | 在variable chunking中所允许的最大chunk大小,默认为16384bytes |
与示例相比,可以看到有-q参数后,显示过程的[INF]为首的命令没有出现。
而加了-C tails=off参数后,由于没有tail chunk,处理的chunk数减少了
-
-q:不输出处理过程的信息,只输出处理结果
-
-e:读取文件失败后立刻退出,默认继续运行
-
-F config_file:从config_file中读取chunking、hashing、compression的有关参数。可以有多行命令,可以允许程序在一次运行中用不同的方式来读取文件。每一行都要有chunking(-c、-C),hashing(-h),compression(-z)的参数,且还要-o参数确定输出hash_file的路径及其文件名。如有其他的指令-b、-d、-e、-F、-m、-M、-p、-q,均忽略。在行首有#的一行或者空行也忽略。
-config_file格式举例:
-c fixed -h murmur -z none -o ~/mine/my_hashfile -
-h hash_method:确定hash method,有murmur、md5、md5-64bit、md5-48bit、sha256。
注:经测试,只有murmur能用 -
-m:遍历树的时候忽略所有的挂载点,默认处理所有的挂载点。
-
-M:用mmap读取文件,默认读入系统调用
-
-o hash_file:指定输出文件的路径及文件名
-
-d:输出调试信息
可以看到多出了以[DBG]为首的调试信息 -
-u:输出帮助信息
-
-z compression_method:选择压缩方法,none不压缩或者zlib-def(默认)
注:经测试 -z zlib-def不能用,所以老老实实用-z none吧 -
-b 读取块设备,默认跳过。