Wie gebe ich eine große Liste von Dateien an, die ich mit rsync synchronisieren muss?

Wie gebe ich eine große Liste von Dateien an, die ich mit rsync synchronisieren muss?

Ich habe eine Liste mit Dateien und Zielen, die ich mit rsync synchronisieren muss, möchte rsync dafür aber nicht mehrmals ausführen (in meinem Fall ist die Verbindungszeit aufgrund der SSH-Verwendung lang).

Beispiel:

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

Wie Sie sich vorstellen können, ist die Liste größer und in meinem Fall muss ich denselben Satz mit mehreren Remote-Servern ausführen.

Wie kann ich das einfach implementieren? Ich möchte, dass rsync einmal pro Server gestartet wird.

Antwort1

Ich habe das einmal schnell behoben, als ich dieses Verhalten in ein bestehendes rsync-Skript einbauen wollte, das nur in einen bestimmten Ordner übertrug: Ich habe zu diesem Zweck auf beiden Seiten einen Katalog mit symbolischen Links erstellt und rsync angewiesen, -Lwährend der Übertragung Links () zu dereferenzieren. Auf meiner Seite wurden die Links in ihren Inhalt dereferenziert und in das Verzeichnis auf der Remote-Seite übertragen, wo sie in die symbolischen Links eingefügt wurden, die auf die Verzeichnisse zeigten, in denen ich sie haben wollte.

Dies ist eigentlich nicht die schlechteste Möglichkeit, Dateien für die Sicherung anzugeben. Es ist vielseitig und leicht anpassbar, ohne Konfigurationsdateien (also die Struktur der Symlinks) zu ändern.Istdie Konfigurationsdatei, in gewisser Weise).

Dieses konkrete Beispiel ist keine gute Lösung, wenn SienichtIn bestimmten Fällen müssen Links jedoch für die Übertragung dereferenziert werden.

Antwort2

Wenn SSH das Problem ist, können Sie die Dinge vielleicht beschleunigen, indem Sie die SSH-Verbindung wiederverwenden und Folgendes in ~/.ssh/config oder eine andere relevante SSH-Konfigurationsdatei einfügen:

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

verwandte Informationen