[GELÖST] rsync - mehrere Zielpfade?
[GELÖST] rsync - mehrere Zielpfade?
Hallo,
ich möchte mittels rsync täglich wichtige Verzeichnisse zur Datensicherung synchronisieren. Dazu nutze ich eine zweite Festplatte im Rechner. Zur Sicherheit will ich das zusätzlich auf einer externen Festplatte machen.
Kann man bei rsync mehrere Zielpfade angeben, die quasi gleichzeitig befüllt werden?
Grüße
BrotherJ
ich möchte mittels rsync täglich wichtige Verzeichnisse zur Datensicherung synchronisieren. Dazu nutze ich eine zweite Festplatte im Rechner. Zur Sicherheit will ich das zusätzlich auf einer externen Festplatte machen.
Kann man bei rsync mehrere Zielpfade angeben, die quasi gleichzeitig befüllt werden?
Grüße
BrotherJ
Zuletzt geändert von BrotherJ am 18.02.2019 17:54:50, insgesamt 1-mal geändert.
Re: rsync - mehrere Zielpfade?
Mit rsync geht das nicht, allerdings soll wohl parallel-rsync aus
pssh sowas können.
Der Manpage nach müsste dann wohl einer deiner Hosts localhost sein.
Getestet habe ich es nicht.

Der Manpage nach müsste dann wohl einer deiner Hosts localhost sein.
Getestet habe ich es nicht.
Re: rsync - mehrere Zielpfade?
Ansonsten ginge das:
Das kopiert quasi gleichzeitig, in separaten Prozessen. (... was aber bei `parallel-rsync' doch auch so sein sollte, oder?)
Code: Alles auswählen
rsync $from $to1 & rsync $from $to2
Use ed once in a while!
Re: rsync - mehrere Zielpfade?
Das liest die Quelle doppelt. Ich hoffe parallel-rsync ist etwas schlauer.
Re: rsync - mehrere Zielpfade?
Prima, das ist es! Vielen Dank für den Tipp!
Re: rsync - mehrere Zielpfade?
Weiss jemand, wie es arbeitet? Ist das ein Fork von rsync, oder warum ist das nicht Teil von rsync selbst? Ich dachte, es waere nur ein Wrapper oder so. Waere an Hintergrundinfos interessiert ...hikaru hat geschrieben:18.02.2019 16:59:13Das liest die Quelle doppelt. Ich hoffe parallel-rsync ist etwas schlauer.
Use ed once in a while!
Re: rsync - mehrere Zielpfade?
Man könnte in den Code schauen. [1] Das ist ein Python-Script und man erkennt auch ohne Ahnung von der Sprache zu haben recht schnell, dass es wirklich nur ein Wrapper ist, der ledigllich in einer Schleife über alle Ziele läuft. So richtig Punkte bringt das also nicht.Meillo hat geschrieben:18.02.2019 19:20:01Weiss jemand, wie es arbeitet? Ist das ein Fork von rsync, oder warum ist das nicht Teil von rsync selbst? Ich dachte, es waere nur ein Wrapper oder so. Waere an Hintergrundinfos interessiert ...
[1] https://sources.debian.org/src/pssh/2.3.1-1/bin/prsync/
Re: rsync - mehrere Zielpfade?
hikaru hat geschrieben:18.02.2019 23:10:30Man könnte in den Code schauen. [1]Meillo hat geschrieben:18.02.2019 19:20:01Weiss jemand, wie es arbeitet? Ist das ein Fork von rsync, oder warum ist das nicht Teil von rsync selbst? Ich dachte, es waere nur ein Wrapper oder so. Waere an Hintergrundinfos interessiert ...

Das bestaetigt zumindest mein Weltbild.Das ist ein Python-Script und man erkennt auch ohne Ahnung von der Sprache zu haben recht schnell, dass es wirklich nur ein Wrapper ist, der ledigllich in einer Schleife über alle Ziele läuft. So richtig Punkte bringt das also nicht.

Kommentar aus dem Code:
Code: Alles auswählen
Parallel rsync to the set of nodes in hosts.txt.
For each node, we essentially do a rsync -rv -e ssh local user@host:remote.
Note that remote must be an absolute path.
Code: Alles auswählen
for i in `cat hosts.txt`; do
rsync -rv -e ssh local user@$i:remote
done
Das passt dazu, dass es Teil von `pssh' ist, was ja darauf ausgelegt ist, als Admin auf einem Set von entfernten Rechnern den gleichen Befehl auszufuehren. Mit `prsync' kann man eben ein rsync auf ein ganzes Set von Rechnern machen, wie ein `pscp', bloss besser.
Wenn man die Quelle nur einmal lesen will, dann kann das nur ueber ein internes Feature von rsync gehen. Das kann man nicht von aussen dranflanschen. Entweder rsync kann das selbst, oder es gibt einen Fork von rsync, der das kann, oder es geht nicht.
Use ed once in a while!
Re: rsync - mehrere Zielpfade?
Ich hatte gestern kurz überlegt, ob man da etwas mit einer tee-Pipe machen könnte.Meillo hat geschrieben:19.02.2019 08:36:38Wenn man die Quelle nur einmal lesen will, dann kann das nur ueber ein internes Feature von rsync gehen. Das kann man nicht von aussen dranflanschen. Entweder rsync kann das selbst, oder es gibt einen Fork von rsync, der das kann, oder es geht nicht.
Aber dazu müsste man rsync dazu überreden können, auf STDOUT zu schreiben und von STDIN zu lesen. Das geht nicht, soweit ich weiß.
Re: rsync - mehrere Zielpfade?
Das muesste dann wohl in einem internen Format oder als Tar oder so sein, weil du ja mehrere Dateien und ihre Attribute transportieren muesst. Es muss also serialisiert plus um Metadaten angereichert sein. Du musst aber noch beruecksichtigen, dass rsync(1) AFAIK eine Zwei-Wege-Kommunikation hat, in der zuerst die Filelist abgeglichen wird, um herauszufinden, was wirklich uebertragen werden muss, bevor es uebertragen wird. Dabei hat man das Problem, dass die verschiedenen Ziele verschiedene Rueckmeldungen liefern koennen, weswegen das rsync an der Quelle fuer die verschiedenen Ziele unterschiedliches liefern muss. Folglich kann es nur funktionieren, wenn das eine interne Logik von rsync ist (oder man inkrementelle Uebertragungen weglaesst, womit dann aber rsync seinen eigentlichen Daseingrund verliert).hikaru hat geschrieben:19.02.2019 08:55:54Ich hatte gestern kurz überlegt, ob man da etwas mit einer tee-Pipe machen könnte.Meillo hat geschrieben:19.02.2019 08:36:38Wenn man die Quelle nur einmal lesen will, dann kann das nur ueber ein internes Feature von rsync gehen. Das kann man nicht von aussen dranflanschen. Entweder rsync kann das selbst, oder es gibt einen Fork von rsync, der das kann, oder es geht nicht.
Aber dazu müsste man rsync dazu überreden können, auf STDOUT zu schreiben und von STDIN zu lesen. Das geht nicht, soweit ich weiß.
Use ed once in a while!
-
- Beiträge: 385
- Registriert: 16.06.2017 09:52:36
Re: [GELÖST] rsync - mehrere Zielpfade?
Vielleicht hilft der Punkt "Batch Mode" in der manpage von rsync weiter?
Zitat daraus:
Wie das genau funktioniert - keine Ahnung! Ich bin froh, dass ich mittlerweile rsync für mein vergleichsweise einfaches backup-Script zähmen konnte - die exclude-Patterns haben mir zunächst die Suppe ziemlich versalzen...
Im Zweifel würde ich eher zu einem einfachen Script tendieren, bevor man sich beim backup vertut und dann kein backup hat, weil man das ja gerade machen wollte...
Zitat daraus:
Quelle auch online: https://manpages.debian.org/stretch/rsy ... .1.en.htmlBatch mode can be used to apply the same set of updates to many identical systems. Suppose one has a tree which is replicated on a number of hosts. Now suppose some changes have been made to this source tree and those changes need to be propagated to the other hosts. In order to do this using batch mode, rsync is run with the write-batch option to apply the changes made to the source tree to one of the destination trees. The write-batch option causes the rsync client to store in a "batch file" all the information needed to repeat this operation against other, identical destination trees.
Generating the batch file once saves having to perform the file status, checksum, and data block generation more than once when updating multiple destination trees. Multicast transport protocols can be used to transfer the batch update files in parallel to many hosts at once, instead of sending the same data to every host individually.
[...]
Wie das genau funktioniert - keine Ahnung! Ich bin froh, dass ich mittlerweile rsync für mein vergleichsweise einfaches backup-Script zähmen konnte - die exclude-Patterns haben mir zunächst die Suppe ziemlich versalzen...
Im Zweifel würde ich eher zu einem einfachen Script tendieren, bevor man sich beim backup vertut und dann kein backup hat, weil man das ja gerade machen wollte...