この質問には 2 つの部分があります。まず、「ファイル数」と「転送されたファイル数」に違いがあるのはなぜですか。これは rsync マンページで説明されています:
<ブロック引用>ファイル数 :ディレクトリ、シンボリックリンクなどを含むすべての「ファイル」(一般的な意味で) の数です。
転送されたファイルの数 :rsync のデルタ転送アルゴリズムを介して更新された通常のファイルの数です。 作成されたディレクトリ、シンボリック リンクなどを含める .
ここでの差は、ディレクトリ、シンボリックリンク、その他の特殊ファイルの合計量に等しいはずです。それらは「転送」されたのではなく、単に再作成されたものです。
では第二弾ですが、なぜduとサイズが違うのでしょうか。 du は、ファイルのサイズではなく、ファイルによって使用されるディスク容量を示します。たとえば、ファイルシステムのブロックサイズが異なる場合、同じファイルが異なる量のディスク容量を占有する可能性があります。
それでもデータの整合性が心配な場合は、確認する簡単な方法は、すべてのファイルのハッシュを作成して比較することです:
( cd /home/hholtmann && find . -type f -exec md5sum {} \; ) > /tmp/hholtmann.md5sum
( cd /media/wd750/c51/home/ && md5sum -c /tmp/hholtmann.md5sum )
真夜中の休暇から働いている他のすべての貧しい失われた魂へ、
--checksum
ファイルに変更があるかどうかを rsync に実際に確認させます。それ以外の場合は、タイムスタンプとファイル サイズを確認し、1 日で終了します。
99.9% のケースではこれで十分であり、残りの 0.01% は地獄で燃え尽きることになります。
私が学んだことを付け加えた方がいいかもしれません。
コマンド rsync /path/source/* /path/to/destination/*
を使用していました (グロビングに注意してください)。私のファイルの 90% はいくつかの例外を除いて転送されていたので、厄介でした (転送されたいくつかのファイルと同じフォルダーにあったとしても)。 *
を削除した後 ソースと宛先から、それらはすべて転送されました。 ¯\_(ツ)_/¯