work.log

元エンジニアの備忘録的ブログ

MD5チェックサムでファイルが破損せず転送できたかを確認する

投稿:

Linuxで使えるmd5sumコマンドを使って、ファイルが破損せずネットワーク越しにコピーできたかを確認する方法です。

たまに使いたくなるのですがいつも忘れているのできちんとメモをしておきます。

Linuxのサーバを複数台使っているとSCPでファイル転送をする事がよくあると思いますが、極稀に破損する事もあるので重要なファイルはMD5チェックサムで正常にコピー出来たかを確認した方が無難です。

■ コピーするファイル

今回はmysqlのrpmをリモートサーバにscpでコピーします。

$ ll mysql*
-rw-r--r-- 1 root root  27079152 Nov  7 09:51 mysql-community-client-8.0.13-1.el7.x86_64.rpm
-rw-r--r-- 1 root root    567688 Nov  7 09:52 mysql-community-common-8.0.13-1.el7.x86_64.rpm
-rw-r--r-- 1 root root   4247212 Nov  7 09:51 mysql-community-devel-8.0.13-1.el7.x86_64.rpm
-rw-r--r-- 1 root root   2370884 Nov  7 09:53 mysql-community-libs-8.0.13-1.el7.x86_64.rpm
-rw-r--r-- 1 root root   2160504 Nov  7 09:53 mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 399522584 Nov  7 09:50 mysql-community-server-8.0.13-1.el7.x86_64.rpm

■ MD5チェックサムの計算

複数のファイルがあるので find と xargs コマンドも併用します。

$ find . -name "mysql*" | xargs md5sum  > md5sum.txt
$ cat md5sum.txt
37b502f5679e99822feebdb739196e42  ./mysql-community-client-8.0.13-1.el7.x86_64.rpm
6ba0e80f6fb2b52f2330f2acde43658c  ./mysql-community-common-8.0.13-1.el7.x86_64.rpm
ab1610d561297fa84c0d421803c7f38d  ./mysql-community-devel-8.0.13-1.el7.x86_64.rpm
261a0017a02ab844abb08bb3319317a9  ./mysql-community-libs-8.0.13-1.el7.x86_64.rpm
2e498cbe92b0e1bd8b35f516d4ed509f  ./mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
ee15886fd906b6dce735775212da352a  ./mysql-community-server-8.0.13-1.el7.x86_64.rpm

ファイルとMD5チェックサムは一緒にリモートサーバに転送します。

$ scp mysql* md5sum.txt user@remote.host:~/files/

■ 破損していないかを確認

$ cd ~/files/
$ md5sum -c md5sum.txt
./mysql-community-client-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-common-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-devel-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-libs-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-server-8.0.13-1.el7.x86_64.rpm: OK

こうなれば大丈夫ですね。問題があるとこのような表示になります。

$ md5sum -c md5sum.txt
./mysql-community-client-8.0.13-1.el7.x86_64.rpm: FAILED
./mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-common-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-devel-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-libs-8.0.13-1.el7.x86_64.rpm: OK
./mysql-community-server-8.0.13-1.el7.x86_64.rpm: OK
md5sum: WARNING: 1 of 6 computed checksums did NOT match

滅多にない事なのですが、ここぞという時は念の為チェックしておいた方が良いです。

破損に気付かずにインストールが成功してしまうとその後の不具合でかなりハマります。

以上、MD5チェックサムのメモ書きです。

よく読まれている記事

  • 本日
  • 週間
  • 月間