rsyncを使用して2つのフォルダを同期したままにする

rsyncを使用して2つのフォルダを同期したままにする

2つの外部ドライブがあります。ドライブの1つの名前は「drive2」で、「Music」というフォルダが含まれています。フォルダの構造は次のとおりです。

drive2/
    /Music/
           Pink Floyd/
                      1982 - Album Name/
                                        01 - Track.flac
                                        02 - Track2.flac
                                        and so on..

したがって、フォルダ階層のために再帰的に同期する必要があるようです。

ドライブ2からドライブ1にフォルダ全体をコピーする必要がありますMusic。私は次のようなものを使用できると思います。

rsync -av drive2/Music/ drive1/Music/

ただし、場合によっては、特定の曲のメタデータを変更します。これらのメタデータの変更は、アルバムのタイトルの変更と同じくらい簡単です。これらの変更はFLACファイルのサイズを必ずしも変更するわけではありませんが、メタデータの変更によりmd5フィンガープリントが確実に変更されます。正しいですか?

このユーティリティを使用すると、ユーティリティがドライブ2のFLACファイルに対するメタデータの変更を検出し、ドライブ1のファイルを更新して同期を維持したことがわかりましrsync -arsync。変更されたファイルのみが転送されますが、これが私が望む動作です。この-a (archive)フラグは、-u変更されたファイルのみが更新されることを意味しているようです。

rsyncしかし、更新されたメタデータを含むファイルを転送するときに、ドライブ1が古いファイルを完全に上書きするのではないかと思います。完全に交換されたという意味ですか?新しいファイルをコピーする前に古いファイルを削除しましたか?

答え1

rsyncが更新されたメタデータにファイルを転送すると、ドライブ1の古いファイルが完全に上書きされますか?

はい。デフォルトの動作は、現在の場所にあるファイルを一時的な場所にコピーすることです。次に、そのコピーに必要な更新を実行します。更新が完了すると、コピーの名前が正しいファイルに変更され、古いファイルが削除されます。

新しいファイルをコピーする前に古いファイルを削除しましたか?

更新される単一ファイルの場合、デフォルトはコピー/更新が完了した後にのみファイルを上書きすることです。

ソースから削除されたファイルの場合、データの更新/転送の前、途中、または後にそのファイルを削除するかどうかを制御できます。

答え2

Rsync は古いファイルを新しいファイルに変換します。これを行う前に、受信者は両方のファイルブロックのチェックサムを知っています。

https://www.cs.tufts.edu/~nr/rsync.html#toc6

答え3

rsyncNautilusよりもネットワーク経由で複製することができる非常に優れたバックアップおよび一般的な複製ツールです。

ただし、rsync設定の同期はバックアップほど簡単ではありません。必要に応じて試してみてくださいunison。専用の同期ツールです。

関連情報