再ダウンロードせずにrsyncはタイムスタンプを変更できますか?

再ダウンロードせずにrsyncはタイムスタンプを変更できますか?

100GiBのファイルをミラーリングしました。私の画像でいくつかのタイムスタンプとファイル権限が間違っている可能性があります。この問題を解決するためにrsyncを使用したいと思います。

私がダウンロードしたサーバーには100GiBを超えるファイルがありました。私のミラーはいくつかのファイルをミラーリングします。各ソースディレクトリから。ディレクトリ全体をミラーリングしません。

100GiBを再ダウンロードせずにタイムスタンプとファイル権限を変更するようにrsyncにどのように指示しますか?

ちなみに今試していますrsync -av --list-only HOST::MODULE >/tmp/list.txt。このデータを取得した後、より良い答えを伝える人がいない場合は、データに基づいて各ファイルに触れるスクリプトを作成します。

しかし、仕事をよりきれいに処理する方法はありませんか?

(持っているこの問題しかし、私のニーズに答えていないようです。 )

答え1

ソースと宛先が異なるシステム上にあり、rsyncクライアントがあらゆる種類のサーバーと通信している場合、rsyncデータコンテンツを送信せずに権限とタイムスタンプが更新されます。たとえば、

rsync -avP --existing server:/path/to/source /path/to/target
rsync -avP --existing server::module /path/to/target

一方、rsyncNFSを介してサーバー上のファイルシステムにアクセスできる場合など、ソースとターゲットが同じプロセスによって管理されている場合、どちらの場合もデータが同じであることを確認する効率的な方法はありません。ショートカットをアップロードするには、権限とタイムスタンプが変更されたデータをもう一度コピーしてください。たとえば、

rsync -avP --existing /path/to/server/source /path/to/target

第二の状況に直面し、次のような場合絶対に確信ファイルの内容が同じ場合、rsync「クイックチェック」が失敗しても内容が同じであると仮定し、権限とタイムスタンプのみを更新する回避策があります。

rsync -avP --existing --size-only /path/to/server/source /path/to/target

この--existingフラグを使用すると、ターゲットの場所に新しいファイルは生成されませんが、既存のファイルは適切に更新されます。この--size-onlyフラグはrsyncタイムスタンプを強制的に無視します。

関連情報