私のローカルボックスには"machineA"
2つのフォルダ"/primary"
と"/secondary"
。これら2つのフォルダにはいくつかのファイルがあります。これで、リモートサーバーに多数のファイルを含むフォルダが"machineB"
あります。"/bat/snap/"
のすべてのファイルと"/primary"
フォルダ"/secondary"
は、リモートサーバーのこのディレクトリに"machineA"
ある必要があります。これで、ローカルボックスのすべてのファイルとフォルダのチェックサムをそのディレクトリのリモートサーバーと比較する必要があります。チェックサムに矛盾がある場合は、問題のすべてのファイルを報告したいと思います。"machineB"
"/bat/snap/"
"/primary"
"/secondary"
"machineA"
"/bat/snap/"
"machineA"
ここでmd5checksumを使用する必要がありますか?
修正する
これは私が実行しているコマンドです"machineA"
。
find /primary/ /secondary/ -type f | xargs md5sum | ssh machineB '(cd /bat/snap/ && md5sum -c)' | egrep -v 'OK$'
以下は、上記のコマンドを停止した後に受け取ったエラーです。両方のサーバーを確認しましたが、このファイルが存在することがわかりますが、何が間違っていますか?
md5sum: /primary/abc_monthly_134_proc_7.data: No such file or directory
/primary/abc_monthly_134_proc_7.data: FAILED open or read
答え1
この目的md*sum
のために様々な文書が作成されます。
マシンAから:
find primary secondary -type f | xargs md5sum > checksum.md5
(ファイルをコンピュータBにコピー)
機械B:
md5sum -c checksum.md5
編集する:単一のコマンドに結合されました。find primary secondary -type f | xargs md5sum | ssh machineB '(cd /location_on_B/ && md5sum -c)' | egrep -v 'OK$'
(別のオプションは、Tellを使用してrsync
試用モードで実行することです--checksum
。)