Wie rsync über Gateway ssh?

3

Ich möchte meine lokalen Dateien mit einem Backup synchronisieren, das ich auf einem Server habe, der den Zugriff von meinem derzeitigen Standort aus nur über ein Gateway ermöglicht. Also habe ich mir folgendes ausgedacht

rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" /home/myname/documents 

und es findet eine gewisse Kommunikation statt, da alle Dateien aufgelistet werden, aber die Zusammenfassung am Ende zeigt, dass es überhaupt keinen Dateitransfer gab.

Number of files: 270889
Number of files transferred: 0
Total file size: 70343212868 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 7596005
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 7613770
Total bytes received: 17764

sent 7613770 bytes  received 17764 bytes  50707.87 bytes/sec
total size is 70343212868  speedup is 9217.44

Ideen?

Giant Molecular Klaus
quelle
Vielleicht sind alle Dateien bereits synchronisiert und es ist keine Übertragung notwendig ???
crayzeewulf
In der Tat sind sie nicht. Es sieht absolut so aus, aber in diesen Ordnern und Unterordnern befinden sich Hunderte von Änderungen und mehrere neu generierte Dateien.
Giant Molecular Klaus
Nur zur Verdeutlichung - die neuer Dateien befinden sich auf dem Server und ich möchte sie auf meinem lokalen Computer herunterladen.
Giant Molecular Klaus
Vielen Dank an Benutzer crayzeewulf: Die Antwort lautet rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh" server.dot.com:/home/meinname/dokumente/ / home / meinname / dokumente
Giant Molecular Klaus

Antworten:

1
  1. Sollte das nicht rsync Befehl sein rsync ... -e "ssh the.gateway ssh" /local/dir/ the.remote.server:/remote/dir/?
  2. Die Nachricht speedup is 9217.44 zeigt, dass die Übertragung ist 9217 mal optimiert, das heißt die dateien zwischen den beiden hosts werden fast (wenn nicht schon) synchronisiert.

AKTUALISIEREN:

# 2 ist nicht korrekt. Sehen Crayzeewulfs Antwort für mehr erklärung. Der Beschleunigungswert hat mich irregeführt, um zu verstehen, dass es funktioniert hat.

pynexj
quelle
Danke für die Antwort und die Kommentare! # 2: Die Dateien sind nicht synchronisiert, es gibt Hunderte von Dateien, die geändert und einige hinzugefügt wurden. # 1: in diesem Fall bekomme ich "bash: the.remote.server: Befehl nicht gefunden ..."
Giant Molecular Klaus
@clarkw, du warst ursprünglich korrekt. Sehen meine Antwort .
crayzeewulf
Oh ja, ich sehe es auch jetzt. Entschuldigen Sie die Verwirrung und vielen Dank für Ihre Hilfe!
Giant Molecular Klaus
1
@ crayzeewulf: Danke. Die Beschleunigungswerte haben mich in die Irre geführt. Aktualisierte meine Antwort, um mehr Leute nicht zu verwirren. :)
pynexj
7

Ich denke Punkt 1 in Clarkws Antwort ist richtig. Wenn du benutzt ...-e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/"hat der entsprechende Befehl rsync ein Quellverzeichnis, aber kein Zielverzeichnis. In diesem Fall laut rsync-Handbuch:

Usages with just one SRC arg and no DEST arg will list the source 
files instead of copying.

Genau das ist los. Sie können dies überprüfen, indem Sie Müll als das bereitstellen -e Streit. Zum Beispiel:

rsync -avz --stats -e 'suq maballs' /tmp

Dieser Befehl funktioniert einwandfrei. Es wird alles unter aufgelistet /tmp und zeige nette Statistiken am Ende:

Number of files: 28
Number of files transferred: 0
Total file size: 182 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 955
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 998
Total bytes received: 26

sent 998 bytes  received 26 bytes  2048.00 bytes/sec
total size is 182  speedup is 0.18

Beachten Sie, dass hier keine Dateien wie in Ihrem Beispiel übertragen werden. Sie müssen Ihren ursprünglichen Befehl ändern:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" \
    /home/myname/documents 

zu:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh" \
    server.dot.com:/home/myname/documents/ \
    /home/myname/documents  

Natürlich ersetzen gateway.dot.com und server.dot.com mit den entsprechenden Hostnamen.

crayzeewulf
quelle
WOW THX! Das funktioniert perfekt :) Ohne Hilfe hätte ich das nie richtig hinbekommen. Nur als Bemerkung, es gibt eine "zu viel in Ihrem Lösungsbefehl.
Giant Molecular Klaus
Froh zu sehen, dass es geklappt hat. @clarkw hatte es gleich beim ersten mal richtig. Vielen Dank auch für den Hinweis auf meinen Fehler. Ich habe es repariert. Bitte akzeptiere eine Antwort wenn Sie zufrieden sind.
crayzeewulf