rsync mit --partial

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
pr0j3ctx
Beiträge: 106
Registriert: 20.07.2006 15:42:31

rsync mit --partial

Beitrag von pr0j3ctx » 27.03.2013 10:37:56

Hallo zusammen.

Ich stehe gerade auf dem Schlauch. Kurzer Schwenk, da ich vor kurzem von 50MBit auf 6MBit downgraden musste, ist die Funktion grosse Dateien mit --partial zu synchronisieren für mich interessant geworden.

Mehrmals schon habe ich nun versucht rsync mit folgendem Befehl auszuführen:
rsync -e 'ssh' -ruvP --stats * root@192.168.5.120:/mnt/nas/daten/tmp/
-P in diesem Fall für --partial --progress

Leider werden abgebrochene Dateitransfers nicht fortgesetzt sondern immer wieder neu kopiert. Leider bin ich hier nicht weiter gekommen.
- Liegt es evtl. an der Option über SSH? Muss ein Daemon auf der Gegenseite laufen?
- Oder beisst sich -P mit einer anderen Option?

Für einen Tipp bin ich sehr dankbar.

Schöne Grüße
pr0

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 27.03.2013 11:01:31

--------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 10:24:43, insgesamt 1-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: rsync mit --partial

Beitrag von Cae » 27.03.2013 16:30:51

pr0j3ctx hat geschrieben:Leider werden abgebrochene Dateitransfers nicht fortgesetzt sondern immer wieder neu kopiert.
Woran machst du das fest?

Die Syntax sieht sonst korrekt aus; -e 'ssh' ist redundant, weil Default, sobald user@host:/path/-URIs verwendet werden. Eine Daemon braucht's nicht, der wird bei der "over-SSH"-Variante in der entfernten Shell gestartet und danach wieder beendet. Dieser temporaere Daemon ist nicht ueber einen Socket erreichbar, sondern per stdin/out innerhalb der SSH-Session. Daran sollte es nicht liegen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
pr0j3ctx
Beiträge: 106
Registriert: 20.07.2006 15:42:31

Re: rsync mit --partial

Beitrag von pr0j3ctx » 27.03.2013 19:39:22

Hallo.

Ich mache es daran fest, das beim erneuten ausführen er wieder bei 0% anfängt.
Das könnte noch normal sein, aber die Geschwindigkeit ist auch nur maximal meine maximale downloadrate.
Es ist nicht so das er dann bis zur letzten Stelle schneller lädt bzw schneller anzeigt.

Hmm oder denke ich falsch.

Grüsse pr0j3ctx

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: rsync mit --partial

Beitrag von Cae » 27.03.2013 20:29:48

Ich hab' das gerade mal ausprobiert, ein raw-Image von einer Platte ueber NFS in's lokale tmpfs. Dauert lang genug, ist halbwegs langsam, und man kann rumspielen. Meine Beobachtung dabei:
  1. ja, er faengt wieder bei 0% an
  2. ja, es wird durchgaengig ungefaehr dieselbe Uebertragungsgeschwindigkeit angezeigt, auch nach Abbruch und Wiederaufnahme
  3. Nein, die einmal angefangene Datei wird immer groesser
Meine Threorie zum ersten Punkt: Die Platte (remote oder lokal) ist zu lahm. Die einzelnen Chunks muessen auf jeder Seite pruefsummiert werden, um festzustellen, ob man sich den Transfer sparen kann (die Datei koennte sich ja zwischendrin geaendert haben). Dazu passt auch die Beobachtung: Datenuebertragung findet zu diesem Zeitpunkt wenig statt.

Punkt zwei: Das koennte der Plattendurchsatz oder eine "virtuelle Geschwindigkeit" sein, "wieviel man gerade eigentlich transportieren muesste". Keine Ahunung.

Dritter Punkt, sofern rsync hart abgeschossen wird, kann's sein, dass eine Datei foo als .foo.123456 im Zielverzeichnis landet. 123456 ist eine Zufallskombination, wohl von mkstemp(). Moeglicherweise wird der Transfer in diesem Fall nicht mit -P korrekt aufgenommen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
pr0j3ctx
Beiträge: 106
Registriert: 20.07.2006 15:42:31

Re: rsync mit --partial

Beitrag von pr0j3ctx » 28.03.2013 08:26:48

Hallo.

Deine Theorie klingt logisch. Ehrlich gesagt war mir die Funktion gar nicht so bewusst, da aber auf der Empfangsseite eine Seagate Dockstar (1,2 Ghz Marvell, 128 MB RAM) werkelt, wird wohl hier das Problem liegen.

Ich habe das ganze gerade nochmal getestet. Die Prozessorlast auf der Dockstar schiesst in die Höhe. Das berechnen der Prüfsummen bringt die Dockstar an die Grenze und daher wohl dieser Effekt.

Grundsätzlich ist die Funktion --partial gegeben, aber in diesem Fall nicht sehr effektiv, aufgrund der minimalen Rechenleistung.

vielen Dank und schöne Grüße
pr0

dimi
Beiträge: 84
Registriert: 19.07.2006 14:09:55

Re: rsync mit --partial

Beitrag von dimi » 28.03.2013 09:08:52

Ich denke da fehlt noch zusätzlich der Schalter --partial-dir mit entsprechendem Verzeichnis oder verwende --inplace anstatt der beiden partial Optionen.

Benutzeravatar
pr0j3ctx
Beiträge: 106
Registriert: 20.07.2006 15:42:31

Re: AW: rsync mit --partial

Beitrag von pr0j3ctx » 28.03.2013 19:38:58

Wenn ich das richtig gesehen habe ist --inplace schon in -u enthalten!?!

Grüsse
pr0

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: AW: rsync mit --partial

Beitrag von Cae » 28.03.2013 19:44:31

pr0j3ctx hat geschrieben:Wenn ich das richtig gesehen habe ist --inplace schon in -u enthalten!?!
Noe, siehst du verkehrt. -u ist keine Zusammenfassung fuer --update, --inplace, --append und die weiteren Optionen zusammen.

Code: Alles auswählen

...
        -L, --copy-links            transform symlink into referent file/dir
        -u, --update                skip files that are newer on the receiver
            --inplace               update destination files in-place
            --append                append data onto shorter files
...
-u ist ein Alias fuer --update, genauso -L fuer --copy-links. --inplace und --append haben einfach keine Aliases, die muss man "lang" schreiben. Wenn du unten in der Manpage guckst, wo zu jeder Option noch ein Text steht, findest du da nix von --inplace unter -u.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
pr0j3ctx
Beiträge: 106
Registriert: 20.07.2006 15:42:31

Re: rsync mit --partial

Beitrag von pr0j3ctx » 18.03.2014 07:56:16

Hallo zusammen.

Lange hat mich das Thema noch beschäftigt. Genaugenommen bis gestern. Dann habe ich durch Zufall eine Eingebung gehabt.
rsync -e 'ssh' -ruvP --stats * root@192.168.5.120:/mnt/nas/daten/tmp/
So sah der ursprüngliche Befehl aus, mit dem es nicht klappte. Falsch war nur eine sache. Der Schalter -u.
-u, --update skip files that are newer on the receiver
Da bei einem Abbruch die Dateien im Ziel noch nicht den Original-Zeitstempel haben, sondern den zum Zeitraum des abbruchs, sind diese Files immer neuer und werden nicht mehr angefasst.

-u Weg und alles läuft wie es soll.

Danke für eure Mithilfe und einen schönen Tag.

Antworten