GNU/Linux >> Linux の 問題 >  >> Linux

rsync がすべてのファイルを転送しない理由は?

この質問には 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% はいくつかの例外を除いて転送されていたので、厄介でした (転送されたいくつかのファイルと同じフォルダーにあったとしても)。 * を削除した後 ソースと宛先から、それらはすべて転送されました。 ¯\_(ツ)_/¯


Linux
  1. 1つのファイルを除くすべてのファイル/ディレクトリを削除しますか?

  2. 名前がファイルリストの行と一致しないディレクトリ内のすべてのファイルを削除しますか?

  3. 一時データの疑似ファイル?

  1. テキスト文字列を含まないすべてのファイルを検索するにはどうすればよいですか?

  2. Rsyncで転送されたファイルのみをログに記録しますか?

  3. Linux – Linux上のRsyncがすべてのタイムスタンプ(作成時間)を保持しないのはなぜですか?

  1. 特定のユーザーが所有していないファイルを探しています

  2. cp -r 隠しファイルなし

  3. rsync ディレクトリ内の N 個の最新ファイル