Antworten:
Viele, aber ich werde ein paar aus meinem Kopf zitieren.
Was ist, wenn ssh / rsh auf dem Remote-Server nicht verfügbar ist oder wenn sie hinsichtlich der Konfiguration oder der strengeren Netzwerkregeln fehlerhaft sind? Die Verwendung von rsh / ssh würde weiterhin den Client erfordern (abhängig von der Sender- oder Empfängerrolle), die Remote-Seite müsste jedoch die rsync-Binärdatei lokal teilen und die Verbindung mit dem auf der lokalen Seite ausgeführten rsync-Prozess herstellen. rsh / ssh würde lediglich einen Verbindungstunnel bereitstellen; Für rsync kommuniziert rsync mit dem anderen rsync-Prozess über die Pipe (s).
Ein rsync-Prozess im Daemon-Modus würde den Server zu einem echten FTP-ähnlichen Server machen, auf dem einige der Dateisysteme über rsync-Module verfügbar gemacht werden können. Alles andere kann vermieden werden. Angenommen, ich möchte nur / usr / local und / var zum Download bereitstellen und lehne jede Anfrage eines rsync-Clients nach anderen Downloads ab. Ich kann Diskretion auf Host-Ebene oder auf Dateisystemebene (Module) anwenden, um das Hochladen oder Herunterladen (schreibgeschützt) zuzulassen.
Kann den Zugriff auf Host- / Benutzerebene, die Authentifizierung, die Autorisierung, die Protokollierung und die Dateisystemmodule (Strukturmodule) zum Herunterladen / Hochladen gezielt über eine Konfigurationsdatei steuern. Bei jeder Änderung an der Konfigurationsdatei rsyncd --daemon
muss oder nicht neu gestartet werden HUPped
. Sie können auch steuern, wie viele Clients gleichzeitig eine Verbindung zum rsync-Server herstellen können. Dies ist gut, da ich nicht möchte, dass mein rsyncd-Server den Host vollständig über CPU- oder festplattenbasierte E / A-Vorgänge auslastet.
Die Chroot-Funktionalität kann über die Konfiguration für rsyncd im Dämonmodus verfügbar gemacht werden. Ich kann dies als hübsches Sicherheitsfeature verwenden, wenn ich verhindern möchte, dass Clients für Dateien / Dateisysteme, die auf dem Host gesichert werden müssen und keinen Zugriff von außen haben sollen, eine Verbindung zu meinem rsyncd herstellen.
Ich kann einige der vom rsync-Client verwendeten Optionen komplett ablehnen und auf der Serverseite nicht unterhalten, z. B. die --delete
Option nicht zulassen .
Kann die Option haben, einige Befehle / Skripte vor und nach dem rsync-Prozess auszuführen. Ein Beispiel wäre das Melden und Speichern der rsync-Statistiken im Post-Transfer-Modus.
Dies sind einige davon, aber ich bin sicher, dass die erfahrenen Benutzer von rsync mehr Licht in diese Sache bringen können.
Beim Versuch, einen großen Ordner mit cygwin zwischen einem Linux-Computer und einem Windows-Computer zu synchronisieren, ist ein Problem aufgetreten. Nachdem ich den SSH-Tunnel zugunsten des rsync-Daemons fallen gelassen hatte, verschwanden meine Probleme.
Der Client muss das Dateisystemlayout usw. des Servers, den er pusht / zieht, nicht kennen
rsync
Verwendung von SSH hatten?
Eine gebräuchliche Verwendung für rsync ist das Spiegeln öffentlicher Archive von Dateien. Der Betreiber der primären Kopie möchte keinen Remote-Shell-Zugriff auf das Archiv zulassen, aber die Freiwilligen, die die Remote-Spiegel ausführen, möchten, dass sie eine vollständige Kopie der Archive effizient abrufen können. Rsync eignet sich hervorragend zum Erstellen eines Spiegels, da nur geänderte Bits heruntergeladen werden. Bei einer leichten Netzwerkunterbrechung wird keine große Datei (CD- / DVD-Images) erneut heruntergeladen.
Das Bit-Torrent-Protokoll ist jetzt vielleicht die bessere Wahl, aber rsync wurde viele Jahre zuvor veröffentlicht.
Auch heute noch verwenden viele große Archive Rsync für Spiegel.
Siehe: http://www.debian.org/mirror/ftpmirror
Das von uns empfohlene Spiegelungsprotokoll ist rsync.
Sie können rsync-Dienste für ein Extranet bereitstellen und auf diese Weise Synchronisierungen zulassen, ohne ssh verfügbar machen zu müssen.
Im Daemon-Modus berechnet rsync lokale Prüfsummen wahrscheinlich schneller und ist daher besser geeignet, wenn Sie mehrere parallele Clients erwarten. Mit dem Standalone-Befehl müssen Prüfsummen für jede Sitzung neu berechnet werden.
SSH verursacht z. B. durch die Verwendung der Verschlüsselung Overhead. Theoretisch sollten Sie also mit einem rsync-Server-Daemon einen höheren Durchsatz erzielen.