2016-05-22 12 views
0

私は、約11TBのデータが格納されているいくつかのハードドライブからなるbtrfsファイルシステムを持っています。私のバックアップは、NFS経由で1つのパスをエクスポートするNASで構成されています。パスはbtrfs-bilesystemでマシンにマウントされ、rsyncはnfsエクスポートをメインファイルシステムに同期させるために呼び出されます。私は1つの-vとrsyncを呼び出し、実行結果をメールアカウントに送信して、すべてが正しく同期されていることを確認します。今すぐにいくつかのディレクトリが正しく同期していないことがわかりました。ディレクトリはNAS上に存在していましたが、空でした。 rsyncはrootとして実行されるため、権利の問題ではない可能性があります。だから私の状況では、rsyncは完全に信頼できるものではないようですが、私は2つのディレクトリツリーを比較して、NAS上にファイルがないかどうか、そして/またはbtrfs上にもう存在しないファイルがあるかどうか、 rsyncによって削除されました。 (私は--deleteオプションを使います)。私はそのために私がチェックするのを助けることができるプログラムやスクリプトのために探しています2つのディレクトリツリーを比較する

は、rsyncは正しく実行されています。チェックサムのような複雑な作業は必要ありません.NT NASにbtrfs-filesystemのすべてのファイルが含まれているかどうかを知りたいだけです。

どこから始めればよいですか?

ユアーズ、ステファン

答えて

0

を実行し、すべてのファイル一覧表示するには、次のコマンドを実行します。

find /path/to/fs -type f | sort > filesystem.txt 
find /path/to/nfs -type f |sort > nfs.txt 

は、次にリストを比較します

diff -u filesystem.txt nfs.txt 
+0

私はこの問題に取り組んで、rsyncはないようです1つのディレクトリにあるファイルを認識する必要があります。途中でdiffとのヒント、Rolandをありがとう。 recv_files(ATOS/00014.m2ts) recv_files(ATOS/00037.clpi) recv_filesなどのrsync --delete -avvv/MNT /のbtrfs-RAIDとのrsyncを実行する/ダウンロード/を/ mnt/QNAP /ダウンロード 出力線( ATOS/00037.m2ts) とで仕上げ:マッチ= 0 hash_hits = 0 false_alarms = 0データ= 0 recv_files相= 2: recv_files相= 1 generate_files相= 2 send_files相= 2 ファイルが 合計が終了送信 recv_files finished generate_files phase = 3 generate_files finished –

+0

送信された4,865バイト59,368バイト128,466.00バイト/秒 合計サイズは345,102,247,470です。スピードアップは5,372,662.77です。 [exit](0)、file = main.c、line = 1183:exit(0)を呼び出そうとしています ファイルが存在するディレクトリをqnap空です。 –

+0

デフォルトでは、rsyncはファイルが変更されたかどうかを判断するためにファイルサイズと最終変更時刻のみを比較する「クイックチェック」アルゴリズムを使用します。 '-c'オプションでrsyncを実行すると、チェックサムを計算して比較して、どのファイルが変更されたかを判断できます。明らかに遅くなります。 –