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チェックサムのメモ書きです。