web-dev-qa-db-ja.com

Rsyncは変更されたファイルのみ

変更または作成されたディレクトリ内のすべてのファイルをrsyncに転送させることは可能ですか? CRC差分チェックほど高度なものは必要ありません。タイムスタンプやファイルサイズが異なるファイルは変更としてカウントされます。

Manページからは可能だという印象を受けましたが、rsyncを渡すためのパラメーターのセットに関するガイダンスが少し必要です。

14
instanceofTom

2つのディレクトリを同期するには:

$ rsync /source/path/* /dest/path/

または、ツリー全体を実行する場合:

$ rsync -a /source/path/ /dest/path/

「-a」は「アーカイブ」モードを指定し、ツリーをできるだけ忠実に複製します。

そこにフラグvPを追加して、動作を確認します。

$rsync -avP /source/path/ /dest/path/

"-v"は詳細モードをオンにして、実行中の動作を確認できます(ファイルがコピーされたときに一覧表示されます)。残り時間など)、そしてあなたはあなたがコピーをどれだけ遠くにいるかを見ることができます。

19
Majenko

これがrsyncがデフォルトで機能する方法です(少なくともLinuxでは)。 manページ から:

Rsyncは、サイズまたは最終変更時刻に変更されたファイルを検索する「デフォルトのクイックチェック」アルゴリズムを使用して、転送する必要があるファイルを見つけます。 (オプションで要求された)他の保存された属性の変更は、ファイルのデータを更新する必要がないことがクイックチェックで示されている場合、宛先ファイルで直接行われます。

13
Rob H