在之前的帖子中,我介绍了axel这个多线程下载工具,用来替换wget进行多线程下载。
每天进步一点点
(图源 :pixabay)
不过在用axel下载了一个数百G的文件后,我突然发觉心里没底,万一这个文件里边丢失哪怕一个字节的内容,这个文件都算白下了,那么如何校验我下载的文件和原始文件一致呢?
md5sum
其实最简单的方法就是校验文件的hash值了,而校验文件hash值最常用的就是md5sum啦。
Ubuntu 18.04发行版中已经包含了md5sum(包含在GNU Core Utilities中),所以我们直接使用即可,无需安装。
调用方式如下:
md5sum [option]… [file]…
比如我要检查文件aaa.tgz的md5,那么只需调用:
md5sum aaa.tgz
输出结果如下:
之后再去服务器上执行同样的命令,获取服务器对应文件的hash,并进行对比就可以啦。
使用校验文件
在对单个文件进行处理时,只要不是头昏眼花,上述人工肉眼判断是没有问题的,但是如果多个文件需要校验,那么估计就该头昏眼花了。
所以使用-c参数就很有必要了:
-c, --check read MD5 sums from the FILEs and check them
简单的来讲,就是把原始文件生成的md5sum输出写入到文件中,下载或复制等传播后,md5sum会直接处理文件并对比校验码。
举例如下:
我们在服务器上生成aaa.tgz的校验码并保存到本地文件md5.txt,内容如下:
d41d8cd98f00b204e9800998ecf8427e aaa.tgz
在本地执行如下命令:
md5sum -c md5.txt
返回内容如下,说明文件校验成功。
下面我们手工破坏一下文件,再测试一下:
echo "hello" >> aaa.tgz
md5sum -c md5.txt
再来看测试结果,会发现提示校验检查出错:
其它补充
除了md5sum,还有好多内置的校验工具可用:
对我而言,校验自己的文件,用md5sum足够啦。
相关链接
- http://www.gnu.org/software/coreutils/md5sum
- http://www.gnu.org/software/coreutils/sha256sum
- 每天进步一点点:使用axel替代wget进行高速多线程下载
https://steemit.com/~witnesses type in
oflyhigh
and click VOTE
Vote @oflyhigh via Steemconnect
Thank you!
This page is synchronized from the post: ‘每天进步一点点:Linux下校验文件’