rsync に同期する必要があるファイルの大きなリストを指定するにはどうすればよいですか?

rsync に同期する必要があるファイルの大きなリストを指定するにはどうすればよいですか?

rsync で同期する必要があるファイルと宛先のリストがありますが、そのために rsync を複数回実行したくありません (私の場合は ssh を使用しているため接続時間が長くなります)。

例:

   ~/aaa    remote:/~/aaa
   ~/bbb    remote:/~/otherplace/bbb

ご想像のとおり、リストはもっと大きくなり、私の場合は複数のリモート サーバーで同じセットを実行する必要があります。

これを簡単に実装するにはどうすればいいでしょうか? rsync をサーバーごとに 1 回起動したいです。

答え1

特定のフォルダーにのみ転送する既存の rsync スクリプトにこの動作を組み込む必要があったときに、この問題を簡単に修正しました。両側でこの目的のためにシンボリック リンクのカタログを作成し、-L転送中に rsync にリンクの参照を解除するように指示しました ( )。私の側では、リンクはコンテンツに参照解除されてリモート側のディレクトリに転送され、そこで必要なディレクトリを指すシンボリック リンクに配置されました。

これは実際にはバックアップ対象ファイルを指定する最悪の方法ではありません。これは多用途で、設定ファイル(シンボリックリンクの構造)を変更せずに簡単にカスタマイズできます。つまり、設定ファイルです。

この特定の例は、ないただし、特定のケースでは転送のためにリンクを参照解除します。

答え2

ssh が問題である場合は、ssh 接続を再利用して速度を上げることができるかもしれません。~/.ssh/config またはその他の関連する ssh 構成ファイルに以下を追加します。

Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

関連情報