rsync mehrere Quellverzeichnisse zu mehreren Zielverzeichnissen

7

Ich habe mehrere Quellverzeichnisse, sagen wir /home/me/source1und /mnt/somedisk/source2. Ich möchte , dass sie beide etwas schieben wie /home/someoneelse/dest1und /home/someoneelse/destjeweils. Ich möchte dazu einen rsync-Befehl verwenden. Ist das möglich?

Was ist mit N Verzeichnissen zu N Verzeichnissen, in denen jedes Verzeichnis einzigartig ist?

devin
quelle

Antworten:

5

Wenn Sie dies häufig tun, würde ich auch vorschlagen, dies durch Skripten zu behandeln.

Wenn der Zielstamm immer derselbe ist, z. B.: rsync /foo/blah1 /bar/Undrsync /fin/blah2 /bar/

Sie können dies mit einer einfachen Bash for-Schleife erledigen.

for x in /foo/blah1 /fin/blah2
do
    rsync $x /bar
done

Außerdem können Sie verschachtelte Schleifen einrichten, damit verschiedene Quellen zu jedem Ziel gelangen können. Wir verwenden dies seit Jahren als grundlegendes Backup-System in unserem Büro.

Magellan
quelle
3

Wenn Sie keine symbolischen Links kopieren müssen, können Sie auf der Empfangsseite ein Verzeichnis einrichten, das das Verzeichnislayout auf der Sendeseite nachahmt, wobei jeder Link auf das beabsichtigte Ziel zeigt.

Ein einziger Ansatz wäre, Symlinks source1und source2auf der Empfangsseite zu haben und den Empfangsprozess mit auszuführen --keep-dirlinks.

Wenn Sie Symlinks übertragen müssen, können Sie --no-implied-dirsfür Sie arbeiten. Wieder hätten Sie Symlinks auf der Empfangsseite, aber diesmal innerhalb einer Verzeichnisstruktur, dh home/me/Verzeichnisse (innerhalb des rsync-Zielordners, wo immer Sie dies wünschen) und home/me/source1wäre ein Symlink zu /home/someoneelse/dest1. Wenn Sie nicht verwenden --keep-dirlinks, sollten Sie sich nicht source1selbst übertragen (da dies den Symlink löschen und durch ein Verzeichnis ersetzen würde), sondern alle darin enthaltenen Dateien source1, dh /home/me/source1/*. Verwenden Sie shopt -s dotglobdiese Option , um auch darin versteckte Dateien abzugleichen.

All dies wird nur aus der Ferne getestet: Ich weiß, dass irgendwann etwas in dieser Richtung funktioniert hat, aber momentan sind keine Details oder Befehle verfügbar. Testen Sie daher mögliche Kombinationen, insbesondere Änderungen zwischen Verzeichnissen und Symlinks zu Verzeichnissen, bevor Sie diese in einem Produktionssetup verwenden.

MvG
quelle