文件传输后完整性检查-md5值校验 2020-04-27

🧑‍💻:md5值是测序文件或者其它文件检验传输前后数据是否完整的重要指标


现以从NCBI下载的数据集为例说明

  • 下载完成后会有下述文件


    image.png

文件中有md5checksums.txt 为对应原始的md5值

$ cat md5checksums.txt
41b9c2fabe7ff8a07ea90d8a44762cfc  ./GCA_010614865.1_ASM1061486v1_assembly_report.txt
cbb41b998a6f787dcf2e901b2b8a75a7  ./GCA_010614865.1_ASM1061486v1_assembly_stats.txt
ba9347531cb06c0eecac9b27f0e86668  ./GCA_010614865.1_ASM1061486v1_genomic.fna.gz
f53d37be53acf20f5260602109629965  ./GCA_010614865.1_ASM1061486v1_genomic.gbff.gz
ccaf29fa415387ec51c7dfde3a0b8aba  ./GCA_010614865.1_ASM1061486v1_genomic_gaps.txt.gz
f30b503a02eb9663db898c7f3dfb7c83  ./GCA_010614865.1_ASM1061486v1_rm.out.gz
e5281c109653d42ec9e985948ebd6ff6  ./GCA_010614865.1_ASM1061486v1_rm.run
2e240f0efbbc3a123d87675f4fadb93e  ./GCA_010614865.1_ASM1061486v1_wgsmaster.gbff.gz
7e7ff6850a5e44f97647742785e2d246  ./annotation_hashes.txt
eb4c13bd5287cd90a3b3a0b4045a9271  ./GCA_010614865.1_ASM1061486v1_feature_count.txt.gz
  • 在Linux系统下, 自带有md5sum这个工具,在命令行终端可以直接调用md5sum
$ md5sum --help
用法:md5sum [选项]... [文件]...
显示或检查 MD5(128-bit) 校验和。
若没有文件选项,或者文件处为"-",则从标准输入读取。

  -b, --binary      以二进制模式读取
  -c, --check       从文件中读取MD5 的校验值并予以检查
  -t, --text        以纯文本模式读取(默认)
  Note: There is no difference between binary and text mode option on GNU system.

以下三个选项在进行校验时非常有用:
      --quiet       不为校验成功的文件输出OK
      --status      不输出任何内容,使用退出状态号显示成功
  -w, --warn        对格式不准确的校验和行进行警告

      --help        显示此帮助信息并退出
      --version     显示版本信息并退出

校验和会按照RFC 1321 规范生成。当进行检查时,给出的输入格式应该和程序的输出
样板格式相同。默认的输出模式时输出一行校验和的校验结果,并有一个字符来
表示文件类型("*"代表二进制," "代表纯文本),并同时显示每个文件的名称。

请向bug-coreutils@gnu.org 报告md5sum 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告md5sum 的翻译错误
要获取完整文档,请运行:info coreutils 'md5sum invocation'
  • 检验传输后得到的文件的md5值是否和源文件的md5值一致
$ md5sum ./GCA_010614865.1_ASM1061486v1_genomic.gbff.gz
f53d37be53acf20f5260602109629965  ./GCA_010614865.1_ASM1061486v1_genomic.gbff.gz
md5sum annotation_hashes.txt
84dfceef9612124152a24231102edc1e  annotation_hashes.txt

此例发现 annotation_hashes.txt的md5值和原始的不一致


特别注意,每一次上传或下载文件都会得到对应的md5值,即文件从A机器到B机器然后到C机器文件得到的md5值都不同,只有在C机器中用md5.txt的md5值和C机器用md5sum检测得到的md5值进行校验,吻合则传输过程无损

  • 批量校验可在md5.txt的当前目录下使用md5sum -c md5.txt
$ md5sum -c md5.txt
Clean/AA-410_1.fq.gz: 确定
Clean/AA-410_2.fq.gz: 确定
Clean/AA-408_1.fq.gz: 确定
Clean/AA-408_2.fq.gz: 确定
Clean/AA-409_1.fq.gz: 确定
Clean/AA-409_2.fq.gz: 确定
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容