Linuxでmd5sumを使って複数ファイルを比較する(旧ブログ)



※このコンテンツは旧ブログからの移行です。
未だに旧コンテンツのURLへアクセスが多いため、アクセスの多いコンテンツを順次以降しています。
すべてのコンテンツは移行しませんのでご了承ください。




さて、HDD移行のためにrsyncコマンドでファイルをコピーしました。
しかし、不安定なため途中でサーバが何回もダウンしたりして正常にコピーできたか心配です。
そこでMD5チェックサムを使ってファイルを比較する方法を紹介します。

まずMD5サムを求めるためのコマンドは
$ md5sum <ファイル名>
となります。
複数のファイルを指定するときはワイルドカードが使えるようです。

さて、これを実行すると標準出力に
$ md5sum /var/log/messages
db606edd0006a962117843760a8656a1  messages
となります。この形式でファイルへ出力すると –check のオプションを使うことによって自動的にファイルの比較を行うことができます。
しかし、この方法では1つずつコマンドを実行しなければならず、複数ファイルの比較は不便です。

複数のファイルを比較するときは
$ md5sum * | tee md5list.txt
こうしましょう。この例では現在のディレクトリにある全てのファイルのMD5リストを標準出力とmd5list.txtに書き出します。
$ md5sum messages* | tee md5list.txt
db606edd0006a962117843760a8656a1  messages
286b2849e6a4e4916a6918d5308618fb  messages.1
3a0de9671c96b69b5e9ef3458246a327  messages.2
3410f51c146124a6c0ceaaa3e05acbc8  messages.3
215704e2a3ad8c9bcd448a4fda08edc4  messages.4
ただし、リアルタイムでの表示はできないようなのでファイルサイズが大きい場合はご注意を!


MD5メッセージダイジェストを記録したファイルが md5list.txt が作成されたので今度は –check オプションを使って
$ md5sum --check md5list.txt
messages: 完了
messages.1: 完了
messages.2: 完了
messages.3: 完了
messages.4: 完了
こうすれば比較完了です!





コメント: