リモートCentosからローカルUbuntuに大容量ファイルを同期します。
rsync -avzP user@<remote-ip>:/path/to/file .
移籍は順調に進んでいることが分かった。
sent 30 bytes received 257,293,476 bytes 1,296,188.95 bytes/sec
total size is 8,217,194,015 speedup is 31.94
私が知っている限り、rsyncは転送が完了した後に自動的にハッシュをチェックし、転送がスムーズに進行していることを確認します。
好奇心でcentosとubuntuからmd5ハッシュを計算しましたが、違います。
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: f3a0fcc59516d4e68fd207bdbb1fc169
両方のハッシュは次のように計算されますmd5sum
。
centos> md5sum --version
md5sum (GNU coreutils) 8.22
ubuntu> md5sum --version
md5sum (GNU coreutils) 8.25
それではバージョンが少し異なりますが、結果的にハッシュ値は異なりますか?
編集する:
ls -l
出力は次のとおりです。
centos: -rw-rw-r--. 1 username username 8217194015
ubuntu: -rw-rw-r-- 1 username username 8217194015
Centos出力には聞いたことのない不思議なビットが含まれています。 (lvmと関係がありますか?centosはlvmを使用します)
編集2:
検査によってmd5sum -b
他の結果が出ることもあります。
centos: 0faa300b7b0b81bfe65199da932eb6e2
ubuntu: 6d799f6981066d82c7f861576b4980e1
rsyncはどのハッシュアルゴリズムを使用しますか?ウィキペディアによるとrsync は md5 を使用してチャンクが同じであることを確認します。
受信者はファイルのコピーをチャンクに分割し、チャンクごとに2つのチェックサム、つまりMD5ハッシュと弱いが計算しやすい「ローリングチェックサム」を計算します。このチェックサムを送信者に送信します。送信者は、ファイルバージョンの各ブロックのローリングチェックサムをすばやく計算します。同じ場合、送信者は計算コストが高くなるMD5ハッシュを使用して、ブロックが同じであることを確認します。
答え1
ここに間違った仮定があります。
私が知っている限り、rsyncは転送が完了した後に自動的にハッシュをチェックし、転送がスムーズに進行していることを確認します。
Rsync はチェックサムを使用して同期が必要かどうかを判断します。ただし、Rsyncは生成されたコピーを再度読み取らず、カーネルがエラーを報告すると信頼します。結論は簡単です。これらのファイルは同じではありません。多分少し、多分それ以上であるかもしれません。チェックサムは不一致の数を知らせることができません。
答え2
ポイントは、.
CentOS上のすべてのファイル(Ubuntuにはありません)のように、SELinuxコンテキストがあることを示しているため、ややmd5sum
混乱する可能性があります。 「テキスト」変換によって破損していないことを確認するためにmd5sum
スイッチを使用して実行してみましたか?b