カメニッキ

カメとインコと釣りの人です

Linuxで対象ディレクトリ内のファイルが一致するか、再帰的に比較する

冗長化している2台のサーバで、同一のファイルを配置しています。 それらのファイルが全て一致しているか比較する方法を調査した結果です。

前提

  • 対象とするサーバをA・Bとする
  • 対象とするディレクトリを/hoge/fugaとする

方法

md5sumのハッシュ値を使用します

Aでハッシュ一覧を作成し、Bに転送

  1. # cd /hoge/fuga
  2. # find . -type f -exec md5sum {} \; > /tmp/AcheckSum.hash
  3. # scp /tmp/AcheckSum.hash user@B:/tmp

BでAから転送されたハッシュ値を元に比較

  1. # cd /hoge/fuga
  2. # md5sum -c /tmp/AcheckSum.hash

結果、以下のように出力

[user@B fuga]# md5sum -c /tmp/AcheckSum.hash 
./fileA: 完了
./fileB: 失敗
./fileC: 完了
./fileD: 完了
md5sum: WARNING: 1 of 4 computed checksums did NOT match