Wer große Datenmengen im Netz sicher übertragen möchte, nutzt vorzugsweise rsync. Leider habe ich selbst schon oft die Erfahrung gemacht, dass rsync im 1GbE (1.000 MBit/s, 125 MB/s) und auch im 10GbE (10.000 MBit/s, 1250 MB/s) etwas langsam sein kann. Dies hängt damit zusammen, dass rsync über ssh läuft und ssh bekanntlich die Verbindung verschlüsselt. Die Verschlüsselung benötigt leider Zeit und vor allem Rechenleistung, ist der Sender oder der Empfänger etwas rechenschwach, so kann dies zu starker Performanceeinbuße führen.
Ist man im heimischen Netz oder in einer sicheren Umgebung, nutzt beispielsweise eine Direktverbindung, so kann man auf die Verschlüsselung und die Kompression verzichten.
rsync -aHAXx -h G --numeric-ids --delete -e "ssh -T -c arcfour -o Compression=no -x" [source_dir] [dest_host:/dest_dir]
Erklärung der rsync Optionen:
-a : archive mode – rescursive, preserves owner, preserves permissions, preserves modification times, preserves group, copies symlinks as symlinks, preserves device files
-H : Hardlinks werden berücksichtigt
-A : behält Rechte bei
-X : erhält erweiterte Attribute
-x : berücksichtigt nur Objekte, die sich im gleichen Dateisystem befinden
-h G : verwandelt Zahlen in den log Dateien in Gigabyte 1.000MB um
-v : zeigt während des Synchronisierens alle ausgeführten Schritte an
-e : wählt die remote Shell aus
–numeric-ids : don’t map uid/gid values by user/group name
–delete : vergleicht Quellverzeichnisse und Zielverzeichnisse und sorgt dafür, dass Dateien, die im Quellverzeichnis nicht (mehr) vorhanden sind, im Zielverzeichnis gelöscht werden.
–progress : zeigt den Fortschritt des Kopiervorganges an.
Erklärung der ssh Optionen:
-T : turn off pseudo-tty to decrease cpu load on destination.
-c arcfour : use the weakest but fastest SSH encryption. Must specify „Ciphers arcfour“ in sshd_config on destination.
-o Compression=no : Turn off SSH compression.
-x: turn off X forwarding if it is on by default.
Und hier die ausführliche Variante mit Ausgabe:
rsync -aHAXxv --numeric-ids --delete --progress -e "ssh -T -c arcfour -o Compression=no -x" [source_dir] [dest_host:/dest_dir]
Antworten