工具列表

 hf-stat  hf-simdex  fs-hasher

hf-stat工具

使用方法

-f参数为例

Usage: ./hf-stat -f hashfile

参数用途

-f : 显示.hash.anon文件中存储的文件信息列表

-h : 显示哈希文件中各文件的数据块的信息:数据块哈希值(Chunk Hash)、数据块的长度(Chunk Size)、压缩率(Compression Ratio)

-w : 显示所包含的文件哈希(File Hash)和相应的文件路径(File Path)

-t : 显示.hash.anon文件的总体信息

hf-simdex

使用方法:

Usage: ./hf-simdex [-i <list|rbtree>] [-s <hash>] hashfile ...

参数用途

-i : 指定操作方法,默认值为rbtree

若添加参数为rbtree,效果如下,效果看上去非常像hf-stat -t的效果,但多出了重复数据块的统计信息。

添加参数为list,效果与rbtree相同,多输出了中间过程,但运行速度明显较rbtree慢10倍以上。

-s : 从统计中剔除指定的hash值对应的数据块。

示例中选择剔除了hash值为e3:79:72:7f:1a:a0的数据块,可以看到数据块总数从1069738减少到了1069737,由于剔除的数据块没有重复出现,因此重复数据块统计结果未变。对比结果如下所示:

fs-hasher

使用方法

Usage: ./fs-hasher [-mdqMeb] -p <path> {-c <fixed|variable> [-C <chunking options>] -h <murmur> -z <none|zlib-def>  -o <hashfile> | -F <configfile>}

必须使用参数包括-p,-c,-h,-z,-o;最简单的使用方法如下所示:

参数用途

基本参数

-p : 指定要处理的文件目录,相对路径、绝对路径均可。

-c : 设置分块选项,有两个参数:fixed、variabe。使用方法为:-c fixed 或 -c variable

当使用-c fixed时,可以通过附加-C参数设定属性:
csize=<csize>
tails=<on|off>
用法如下所示:

-C csize=xxx tails=on 或 tails=off

tails开启时,对相同文件目录经行处理时结果如下:

tails关闭时,对相同文件目录经行处理时结果如下:

其中tails=off时处理的数据块较少。

当使用-c varibale时,可以通过附加-C参数设定属性:
[:algo=<random|simple|rabin]
[:win_size=<window size>]
[:match_bits=<no of bits to check in the fingerprint>]
[:pattern=<pattern of bits to match>]
[:min_csize=<csize>][:max_csize=<csize>]
[:tails=<on|off>]

使用方法与fixed中-C参数的使用方法一致。

-h : 指定hash方法,观察了一下貌似只支持murmurhash。

-z : 指定生成文件的压缩方法,可选择不进行压缩(none)或者zlib-def压缩。

-o : 指定所要生成的hash文件的路径、文件名。

其他参数

-m : 忽律所有挂载在指定的路径下的文件。

-d : 输出调试信息,效果如下所示,会以[DBG]开头输出。

-q : 静默执行,避免输出执行过程,仅输出结果,效果如下所示:

-M : 使用mmap来读取文件

-e : 加入该参数会使得程序在读取文件失败后直接退出,若不添加该参数,程序将继续运行。

-b : 扫描块设别(默认会跳过)

block device是块设备 char devicej是字符设备;
I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。
  在大多数的UNIX操作系统中,块设备只支持以块为单位的访问方式,如磁盘等.KYLIN支持以字符方式来访问块设备,即支持以字符为单位来读写磁盘等块设备。所以在/dev目录中的块设备,如磁盘等,均以字符设备的外观出现。所以,字符设备和块设备的区别主要体现在KYLIN内核中的管理方式,操作方式和内核/设备驱动接口上。
  

-u : 输出帮助信息。

-F : 从设置文件中读取数据块和hash文件设置的相关信息。

在vim中使用%!xxd -c 12指令可以方便的查看.hash.anon文件。如下所示:

可以直观发现数据集中大量的全0Chunk。

可以看到FSL数据集的一些信息(linux版本等等)。

例如上图可以看到一份png图片文件的数据。

fs-hasher工具介绍的更多相关文章

  1. 《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载

    注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架Server ...

  2. json、javaBean、xml互转的几种工具介绍

    json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...

  3. Linux性能工具介绍

    l  Linux性能工具介绍 p  CPU高 p  磁盘I/O p  网络 p  内存 p  应用程序跟踪 l  操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l  应用程序的性能问题/功能问 ...

  4. Android APP压力测试(一)之Monkey工具介绍

    Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...

  5. Android系统性能调优工具介绍

    http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...

  6. 简要介绍Apache、php、mysql安装和工具介绍

    1 安装Apache 网站:www.Apache.org下载相应的Apache,目前下载了近期的:httpd-2.2.15-win32-x86-openssl-0.9.8msi 安装简要步骤如下图: ...

  7. [原创]Java静态代码检查工具介绍

    [原创]Java静态代码检查工具介绍 一  什么是静态代码检查? 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数 ...

  8. RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用

    RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用 功能介绍 这个项目经过了大半年的持续更新到目前的阶段基本稳定 所有源代码都是开源的,在gith ...

  9. 用户管理 之 Linux 用户管理工具介绍

    Linux是一个多用户的操作系统,她有完美的用户管理工具,这些工具包括用户的查询.添加.修改,以及用户之间相互切换的工具等:通过这些工具,我们能安全.轻松的完成用户管理: 在这里我们要引入用户控制工具 ...

  10. 【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

    四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho 1 BI系统的简述 从技术角度来说 BI 包含了 ETL.DW.OLAP.DM等多环节.简单的说就是把交易系统 ...

随机推荐

  1. php之定义大字符串数据时使用定界符来标识

    在定义大字符串数据时,通常使用定界符来标识,这种方式能保留文本中的格式,如文本中的换行.定界符使用格式如下. <<<identifier 格式化文本 identifier 其中,符号 ...

  2. matlab之fliplr()函数

    fliplr  左右翻转矩阵 语法: B = fliplr(A) 将矩阵A的列绕垂直轴进行左右翻转 matabc 如果A是一个行向量,fliplr(A)将A中元素的顺序进行翻转. 如果A是一个列向量, ...

  3. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  4. centos 静态拨号

    本人系统centos6.5:虚拟机太丑,固ssh. centos的与联网相关的配置文件在 $ /etc/sysconfig/network-scripts DHCP方式-联网 打开文件 $ vim / ...

  5. 关于COM组件调用

    转载自:http://www.cppblog.com/ice197983/articles/4178.html 一.调用步骤: 使用ATL编写的COM组件调用方法有两种:1.导入myCom.dll文件 ...

  6. IP通信中音频编解码技术与抗丢包技术概要

    此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一 ...

  7. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  8. BZOJ2120:数颜色

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  9. 洛谷【P1104】生日(插入排序版)

    题目传送门:https://www.luogu.org/problemnew/show/P1104 题目很简单,我主要是来讲插入排序的. 所谓插入排序,就是从待排序数组不断将数据插入答案数组里. 假设 ...

  10. ECMAScript中面向对象的程序设计思想总结

    <JavaScript高级程序设计>Chapter6笔记 1.ECMAScript内部值属性:数据属性和访问器属性 1)数据属性 数据属性的4个特性: configurable:表示能否通 ...