Anleitungen

Dateien schnell zwischen zwei Servern mit dem rsync-Befehl über SSH übertragen

  • 18 Min. Lesezeit
  • Hostragons-Team
Dateien schnell zwischen zwei Servern mit dem rsync-Befehl über SSH übertragen

Der rsync-Befehl über SSH ist eine der praktischsten Methoden unter Linux, um große Dateien schnell, sicher und unterbrechungsfrei zwischen zwei Servern zu übertragen. Besonders beim Transport von hunderten GB großen Website-Dateien, Backup-Archiven, Medienordnern oder Anwendungsdaten bietet rsync erhebliche Geschwindigkeitsvorteile gegenüber herkömmlichen Kopiermethoden, da es nur die veränderten Blöcke überträgt. Das grundlegende Funktionsprinzip ist folgendes: Die Dateien auf dem Quellserver werden über ein verschlüsseltes SSH-Tunnel zum Zielserver synchronisiert; wird die Verbindung unterbrochen, kann der Vorgang an der Stelle fortgesetzt werden, an der er gestoppt wurde.

Beim Serverumzug, beim Upgrade von Hosting-Plänen, beim Wechsel des Rechenzentrums oder bei Backup-Operationen sind sowohl Geschwindigkeit als auch Datenintegrität von Bedeutung. Das Herunterladen und anschließende Hochladen eines großen Archivs kann sowohl zeitaufwendig sein, als auch dazu führen, dass man bei Verbindungsfehlern von vorne beginnen muss. Hier kommt rsync ins Spiel: Es kann Zeitstempel, Berechtigungen, Eigentumsinformationen und die Ordnerstruktur der Dateien bewahren. Aus diesem Grund wird es häufig von Linux-Systemadministratoren, DevOps-Teams und Webhosting-Experten in ihren täglichen Operationen bevorzugt.

In diesem Leitfaden werden wir den Prozess der Übertragung großer Dateien zwischen zwei Linux-Servern über SSH mit rsync Schritt für Schritt anhand von echten Befehlen betrachten. Außerdem werden wir Parameter zur Leistungssteigerung, Sicherheitskontrollen, Fehlerszenarien, Testübertragungsmethoden und wichtige Punkte, die vor dem Wechsel in die Produktionsumgebung zu beachten sind, teilen. Wenn Sie planen, auf einen neuen VPS oder eine neue Hosting-Umgebung umzusteigen, stellen Sie sicher, dass auf Ihrem Quell- und Zielserver ausreichend Speicherplatz, SSH-Zugriff und die richtigen Benutzerberechtigungen vorhanden sind. Für die Auswahl der relevanten Infrastruktur können Sie die Seiten Hostragons VPS-Serverlösungen und Linux-Hosting-Pakete überprüfen.

Was ist rsync und warum ist es die bevorzugte Wahl für große Dateiübertragungen?

rsync ist ein leistungsstarkes Befehlszeilenwerkzeug, das dazu dient, Dateien und Verzeichnisse lokal oder zwischen entfernten Servern zu synchronisieren. Das wichtigste Merkmal ist der Delta-Transfer-Algorithmus. Dieser Algorithmus überträgt nicht die gesamte Datei bei jedem Vorgang, sondern nur die veränderten Teile. Wenn beispielsweise in einer 80 GB großen Backup-Datei nur 2 GB Änderungen vorgenommen wurden, ist es unter geeigneten Bedingungen möglich, nur die veränderten Blöcke zu übertragen, anstatt die gesamte Datei erneut zu verschieben.

SSH hingegen sorgt für eine verschlüsselte Übertragung. Dadurch überträgt der rsync-Befehl die Dateiinhalte nicht als Klartext über das Netzwerk. Diese Eigenschaft ist besonders wichtig für Kundendaten, E-Commerce-Bestellprotokolle, Medienarchive, Datenbank-Backups und spezielle Anwendungsdateien. Im Hosting-Bereich ist Datensicherheit nicht nur auf SSL-Zertifikate beschränkt; auch der Übertragungskanal zwischen den Servern sollte sicher sein. Während Sie für den Webverkehr SSL-Zertifikat verwenden, sollte auch bei Dateiübertragungen zwischen Servern die Verschlüsselung über SSH bevorzugt werden.

rsync ist flexibler als FTP oder manuelle Download-Upload-Methoden. Es kann Berechtigungen beibehalten, symbolische Links übertragen, gelöschte Dateien auch auf dem Ziel löschen, die Bandbreite begrenzen und vor der Übertragung Tests durchführen. In riskanten Operationen wie dem Übertragen großer Dateien bietet dieses Kontrollniveau erhebliche Vorteile.

Wann sollten Sie den rsync-Befehl über SSH verwenden?

Der rsync-Befehl über SSH ist besonders ideal für große Dateien, eine Vielzahl von Dateien oder häufig geänderte Dateien. Für einen einfachen visuellen Ordner kann manuelles SFTP ausreichend sein; jedoch wird rsync bei Tausenden von Dateien, unterschiedlichen Berechtigungen und großen Archiven zu einer viel zuverlässigeren Option.

  • Wenn Sie eine Website von einem alten Server auf einen neuen VPS-Server übertragen.
  • Wenn Sie Verzeichnisse übertragen, die Tausende von Mediendateien enthalten, wie den WordPress-Uploads-Ordner.
  • Wenn Sie tägliche, wöchentliche oder monatliche Backups auf einen anderen Server kopieren.
  • Wenn Sie einen Wechsel des Rechenzentrums oder des Hosting-Anbieters vornehmen.
  • Wenn Sie Anwendungsdateien zwischen Produktions- und Backup-Umgebungen synchronisieren.
  • Wenn Sie lange Transfers planen, bei denen die Möglichkeit eines Verbindungsabbruchs besteht.

Wenn Sie beispielsweise einen 250 GB großen Medienordner auf Ihren Desktop herunterladen und dann auf den neuen Server hochladen, bedeutet dies, dass Sie zwei separate Übertragungen durchführen müssen. Dies verlängert sowohl die Gesamtzeit als auch verlangsamt Ihre Internetverbindung zu Hause oder im Büro. Mit rsync können Sie die Übertragung direkt vom Quellserver zum Zielserver durchführen und diesen Zwischenschritt vermeiden.

Vorbereitung: Was Sie benötigen

Für eine erfolgreiche rsync-Operation reicht es nicht aus, nur den Befehl zu kennen. Es ist wichtig, die Bedingungen des Quell- und Zielservers zu überprüfen, um das Risiko von Datenverlust oder unvollständigen Übertragungen während des Vorgangs zu minimieren. Die folgenden Kontrollen sollten in Produktionsumgebungen unbedingt durchgeführt werden.

1. Überprüfen Sie den SSH-Zugriff

Es sollte eine SSH-Verbindung vom Quellserver zum Zielserver hergestellt werden können. Der Standardtest für die Verbindung lautet: ssh benutzer@ziel-server-ip. Falls SSH über einen anderen Port arbeitet, sollte die Verbindung wie folgt getestet werden: ssh -p 2222 benutzer@ziel-server-ip. Wenn dieser Test fehlschlägt, wird auch rsync nicht funktionieren. Firewall, Fail2ban, SSH-Port, Benutzerberechtigungen und Passwort- oder Schlüsselverifizierung sollten überprüft werden.

2. Überprüfen Sie, ob das rsync-Paket installiert ist

In den meisten Linux-Distributionen ist rsync bereits vorinstalliert; dennoch sollte dies überprüft werden. In Debian- und Ubuntu-basierten Systemen kann der Befehl rsync --version verwendet werden. Wenn es nicht installiert ist, kann es mit apt install rsync installiert werden. In AlmaLinux, Rocky Linux oder CentOS-Distributionen sind die Befehle dnf install rsync oder yum install rsync zu verwenden. Wenn Sie einen Linux-basierten VPS bei Hostragons verwenden, dauert die Installation in der Regel nur wenige Sekunden.

3. Überprüfen Sie den Speicherplatz

Wenn auf dem Zielserver nicht genügend freier Speicherplatz vorhanden ist, wird die Übertragung unterbrochen. Um die Größe des Quellverzeichnisses zu sehen, kann der Befehl du -sh /quell/verzeichnis verwendet werden. Mit dem Befehl df -h sollte der Speicherplatzstatus auf dem Zielserver überprüft werden. In der Praxis sollte nicht nur so viel Platz wie die Dateigröße vorhanden sein, sondern auch Platz für temporäre Dateien und Logs eingeplant werden. Wenn Sie beispielsweise 500 GB Daten übertragen möchten, sollten Sie mindestens 550-600 GB verfügbaren Speicherplatz auf dem Zielserver einplanen.

4. Planen Sie kritische Dienste und geänderte Dateien

Auf live laufenden Websites können sich Dateien während der Übertragung ändern. Insbesondere Benutzeruploads, Cache-Ordner und Log-Dateien werden ständig aktualisiert. Bei großen Übertragungen wird zuerst die Hauptdatenübertragung durchgeführt, danach wird der Wartungsmodus aktiviert und eine letzte rsync-Übertragung durchgeführt. Dadurch kann die Ausfallzeit auf Minuten reduziert werden. Für WordPress-Websites können Sie mit unterstützenden Inhalten wie dem Leitfaden zur Migration von WordPress Hosting Ihren Operationsplan vervollständigen.

Der grundlegende rsync-Befehl: Dateien zwischen zwei Servern übertragen

Die am häufigsten verwendete Grundstruktur lautet: rsync -avz /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/. Hierbei steht -a für den Archivmodus, der versucht, Informationen wie Berechtigungen, Zeitstempel und symbolische Links beizubehalten. -v gibt einen detaillierten Output aus. -z wendet Kompression während der Übertragung an. Der Schrägstrich am Ende des Verzeichnisses ist ein wichtiges Detail. Wenn Sie /quell/verzeichnis/ schreiben, wird der Inhalt des Verzeichnisses an das Ziel kopiert; wenn Sie /quell/verzeichnis schreiben, wird das Verzeichnis selbst unter dem Ziel erstellt.

Betrachten wir ein Beispiel-Szenario: Sie möchten die 180 GB großen Webdateien im Ordner /var/www/site/public_html/ auf den neuen Server im Verzeichnis /var/www/site/public_html/ übertragen. Der Befehl funktioniert wie folgt: rsync -avz /var/www/site/public_html/ root@203.0.113.20:/var/www/site/public_html/. Dieser Vorgang überträgt die Dateien vom Quellserver zum Zielserver über SSH.

Wenn Sie nicht als root arbeiten möchten, ist es sicherer, einen speziellen Benutzer auf dem Zielserver zu erstellen, der Schreibrechte für das entsprechende Verzeichnis hat. Zum Beispiel können Sie den Benutzer deploy verwenden und die entsprechenden Ordnerschreibrechte entsprechend anpassen. In Produktionsumgebungen ist es zwar praktisch, direkt als root zu arbeiten, jedoch wird empfohlen, einen Benutzer mit eingeschränkten Rechten zu verwenden, um die Sicherheit zu erhöhen.

Empfohlene sichere und robuste rsync-Parameter

Bei großen Dateiübertragungen ist es nicht immer richtig, sich nur auf den grundlegenden Befehl zu verlassen. Zusätzliche Parameter sind erforderlich, um Verbindungsabbrüche, unvollständige Dateien, falsche Löschvorgänge oder langsame Netzwerke zu berücksichtigen. Der folgende Befehl ist ein solider Ausgangspunkt für viele reale Übertragungsszenarien:

rsync -aHAXv --numeric-ids --partial --progress --append-verify -e ssh /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/

In diesem Befehl hilft -a dabei, den Archivmodus zu aktivieren, -H bewahrt die Informationen über Hardlinks, -A die ACL-Berechtigungen und -X die Werte für erweiterte Attribute. --numeric-ids verwendet die ID-Werte anstelle von Benutzer- und Gruppennamen; dies kann nützlich sein, wenn die Benutzernamen auf verschiedenen Servern unterschiedlich sind. --partial lässt unvollständige Dateien bestehen. --progress zeigt den Fortschritt der Übertragung an. --append-verify hilft insbesondere bei großen Dateien, den hinzugefügten Teil zu überprüfen, wenn die Übertragung fortgesetzt wird.

Jeder Parameter ist nicht in jedem System erforderlich. Zum Beispiel kann die Verwendung von -aHAX bei einer einfachen Website-Übertragung ausreichend sein, während die Beibehaltung von ACL- und erweiterten Attributinformationen in einer Anwendung mit speziellen Datei-Berechtigungen entscheidend sein kann. Daher ist es wichtig, zuerst Testübertragungen durchzuführen.

Wie sollte der Befehl aussehen, wenn Sie einen anderen SSH-Port verwenden?

Zur Sicherheit kann der SSH-Port anstelle von 22 auf einem anderen Port arbeiten. In diesem Fall muss der SSH-Parameter innerhalb des rsync-Befehls angegeben werden. Beispiel: rsync -avz -e ssh -p 2222 /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/. Beachten Sie, dass der -e-Parameter im Befehlszeilen-Befehl zusammen verwendet werden muss. Die richtige Verwendung ist wie folgt: rsync -avz -e 'ssh -p 2222' /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/.

In JSON und einigen Panels kann die Verwendung von einfachen Anführungszeichen unterschiedlich reagieren, daher sollten Sie beim direkten Eingeben im Terminal sicherstellen, dass die Anführungszeichen korrekt sind. Wenn Sie sich mit einem SSH-Schlüssel verbinden, kann auch der -i-Parameter hinzugefügt werden: rsync -avz -e 'ssh -p 2222 -i /root/.ssh/id_rsa' /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/. Diese Methode wird häufig in Automatisierungs- und Cron-basierten Backup-Jobs verwendet.

Übertragungstest vorab: Verwendung von --dry-run

Ein professioneller Schritt vor der Übertragung großer Daten ist die Verwendung von --dry-run. Dieser Parameter kopiert die Dateien nicht tatsächlich; er zeigt nur, welche Dateien übertragen werden. Auf diese Weise können falsche Verzeichnisse, fehlerhafte Zielpfade oder unerwartete Löschvorgänge im Voraus erkannt werden.

Beispiel-Testbefehl: rsync -avz --dry-run /var/www/site/ benutzer@ziel-ip:/var/www/site/. In der Ausgabe sehen Sie die Dateien, die übertragen werden, die Verzeichnisse, die erstellt werden, und eine Zusammenfassung des Vorgangs. Wenn Sie den --delete-Parameter verwenden möchten, wird die Verwendung von dry-run noch kritischer, da --delete Dateien, die im Quellverzeichnis nicht vorhanden sind, im Zielverzeichnis löschen kann. Richtig verwendet spiegelt es das Ziel genau wider; bei falscher Verwendung kann es zu erheblichen Datenverlusten führen.

Die professionelle Reihenfolge der Anwendung ist in der Regel wie folgt: Zuerst wird der SSH-Test durchgeführt, dann der Speicherplatz überprüft, anschließend wird rsync --dry-run ausgeführt, ein echter Test mit einem kleinen Verzeichnis durchgeführt und danach wird die Hauptübertragung gestartet. Dieser Ansatz kann einige Minuten zusätzliche Zeit erfordern, verhindert jedoch fehlerhafte Übertragungen, die Stunden in Anspruch nehmen könnten.

Leistungsoptimierung: Kompression, Bandbreite und Sicherheitsparameter

Die Leistung von rsync hängt nicht nur von der Dateigröße ab. Die CPU-Leistung der Server, der Festplattentyp, die Netzwerkverzögerung, die Bandbreite und die Anzahl der Dateien sind ebenfalls wichtig. Eine große Anzahl kleiner Dateien kann langsamer übertragen werden als eine große Datei, da für jede Datei Metadaten verarbeitet werden müssen. In VPS-Umgebungen mit NVMe-Festplatten kann die Lese- und Schreibleistung deutlich besser sein. Daher ist es sinnvoll, die NVMe VPS-Server Optionen zu prüfen, wenn Sie eine intensive Übertragung planen.

Der -z-Parameter für die Kompression bringt Vorteile bei Textdateien, Logs und bestimmten Backup-Typen. Allerdings kann er bei bereits komprimierten Dateien wie zip, tar.gz, jpg, mp4 oder gzip unnötige CPU-Ressourcen verbrauchen, ohne signifikante Vorteile zu bieten. Wenn Sie große Mediendateien zwischen zwei leistungsstarken Servern mit einer 1 Gbps-Verbindung übertragen, könnten Sie bessere Leistungen erzielen, ohne -z zu verwenden. Andererseits kann -z bei geringer Bandbreite und textlastigen Dateien erhebliche Einsparungen bringen.

Um die Bandbreite zu begrenzen, kann --bwlimit verwendet werden. Zum Beispiel setzt --bwlimit=50000 ein Limit von etwa 50 MB/s. Dies ist wichtig, um die Netzwerktraffic einer aktiven Website nicht zu überlasten. Eine Vollgeschwindigkeitsübertragung auf einem Produktionsserver während der Stoßzeiten könnte das Besuchererlebnis negativ beeinflussen. Es ist ratsam, Übertragungen auf die Nachtstunden zu planen, Bandbreitenbeschränkungen festzulegen und während des Vorgangs die Lastwerte zu überwachen.

Vergleich von rsync, scp, SFTP und FTP

Vergleich von rsync, scp, SFTP und FTP

Es gibt mehrere Methoden zur Dateiübertragung; jede Methode hat jedoch ihre eigenen Stärken und Schwächen. Die folgende Tabelle fasst zusammen, welches Werkzeug in großen Datei- und Serverübertragungs-Szenarien wann am besten geeignet ist.

Vergleich von rsync, scp, SFTP und FTP
MethodeSicherheitFortsetzung vom letzten PunktLeistung bei großen DateienOptimaler Einsatz
rsync + SSHHochStarkSehr gutServerumzug, Backup, Synchronisierung
scpHochBegrenztMittelSchnelles Kopieren einer geringen Anzahl von Dateien
SFTPHochClientabhängigMittelManuelle Dateiverwaltung
FTPNiedrigClientabhängigVariabelWenn Sicherheit nicht kritisch ist, ältere Systeme

Wie aus der Tabelle ersichtlich ist, sticht rsync insbesondere bei wiederholten Synchronisierungen und großen Datenübertragungen hervor. scp ist einfach und benutzerfreundlich, jedoch nicht so leistungsfähig wie rsync bei der intelligenten Erkennung von geänderten Dateien. FTP hingegen ist ohne Verschlüsselung nicht für moderne Sicherheitsstandards geeignet. FTP-Zugriff in Hosting-Panels kann praktisch sein; jedoch sollten bei kritischen Übertragungen zwischen Servern bevorzugt SSH-basierte Methoden eingesetzt werden.

Beispiel-Workflow für den Umzug einer Live-Website

Beim Umzug einer Website von einem alten Server auf einen neuen Server besteht das Ziel nicht nur darin, die Dateien zu kopieren. Auch DNS, Datenbank, SSL, PHP-Version, Datei-Berechtigungen und E-Mail-Konfigurationen sollten überprüft werden. Im Folgenden finden Sie einen Beispiel-Workflow mit geringer Ausfallzeit für eine Website mit großen Dateien.

  • Bereiten Sie den Webserver, PHP, die Datenbank und die erforderlichen Module auf dem neuen Server vor.
  • Senken Sie den DNS TTL-Wert des Domainnamens vor dem Umzug auf einen niedrigen Wert von 300 Sekunden. Für die Verwaltung des Domainnamens können Sie die Seite Domain-Abfrage und Domain-Management bewerten.
  • Starten Sie die erste rsync-Übertragung, während die Website live ist. In dieser Phase wird der größte Teil der großen Daten übertragen.
  • Erstellen Sie ein Backup der Datenbank und übertragen Sie es auf den neuen Server.
  • Setzen Sie die Website in den Wartungsmodus.
  • Führen Sie den zweiten rsync-Befehl aus, um die zuletzt geänderten Dateien zu synchronisieren.
  • Aktualisieren Sie die Datenbank erneut oder verwenden Sie eine inkrementelle Strategie.
  • Überprüfen Sie die Datei-Berechtigungen, den Seitenaufruf und die Logs auf dem neuen Server.
  • Installieren oder erneuern Sie das SSL-Zertifikat. Hierfür kann der Inhalt zur Installation des SSL-Zertifikats hilfreich sein.
  • Leiten Sie die DNS-Einträge auf die neue IP-Adresse um.

In dieser Methode wird die längste Hauptdateiübertragung durchgeführt, während die Website arbeitet. Unterbrechungen treten nur während der letzten Synchronisierung und des DNS-Wechsels auf. Bei WordPress-Websites mit großen Medienarchiven kann dieser Ansatz die Ausfallzeit von Stunden auf Minuten reduzieren.

Überprüfung der Datenintegrität

Nachdem die Übertragung abgeschlossen ist, reicht es nicht aus, nur zu überprüfen, ob der Befehl abgeschlossen ist. Die Anzahl der Dateien, Größen und kritischen Dateien sollten geprüft werden. Für eine einfache Überprüfung können die Verzeichnisgrößen mit dem Befehl du -sh im Quell- und Zielverzeichnis verglichen werden. Aufgrund von Blockunterschieden im Dateisystem erscheinen die Werte jedoch möglicherweise nicht identisch. Für eine detailliertere Überprüfung kann rsync erneut mit denselben Parametern ausgeführt werden. Wenn keine neuen Dateien mehr zu übertragen sind, wird die Ausgabe auf ein Minimum reduziert.

Zur Überprüfung der Prüfziffern kann der Befehl rsync -avc --dry-run /quell/verzeichnis/ benutzer@ziel-ip:/ziel/verzeichnis/ verwendet werden. Der -c-Parameter vergleicht die Dateien zusätzlich zu Zeitstempel und Größe mit der Prüfziffer. Bei sehr großen Datenmengen kann dies zu einer hohen CPU- und Festplattenlast führen, daher sollte es mit Bedacht eingesetzt werden. Dieses zusätzliche Validierungsverfahren bietet Sicherheit für kritische Archive, Datenbank-Dumps oder Kundendokumente.

Wenn Sie eine Website übertragen haben, sollten auch auf Anwendungsebene Überprüfungen durchgeführt werden. Die Startseite, das Verwaltungsdashboard, der Dateiupload, die Zahlungsseite, das Kontaktformular und die Fehlerprotokolle sollten überprüft werden. Bei E-Commerce-Websites reicht es nicht aus, nur die Dateien zu übertragen; auch die Zahlungsintegrationen und Cron-Jobs sollten auf dem neuen Server getestet werden.

Häufige Fehler und deren Lösungen

Fehler: Permission denied

Dieser Fehler tritt in der Regel aufgrund von SSH-Benutzerberechtigungen, Schreibrechten im Zielverzeichnis oder Schlüsselvalidierung auf. Versuchen Sie zuerst, eine normale SSH-Verbindung mit demselben Benutzer herzustellen. Wenn die Verbindung erfolgreich ist, testen Sie die Erstellung von Dateien im Zielverzeichnis. Gegebenenfalls sollten die Eigentumsrechte des Zielordners mit chown dem entsprechenden Benutzer zugewiesen oder eine sudo-basierte Strategie geplant werden.

Fehler: No space left on device

Wenn auf der Ziel-Festplatte nicht genügend Speicherplatz vorhanden ist, wird die Übertragung abgebrochen. Überprüfen Sie die Partitionen mit df -h. Manchmal ist die Hauptfestplatte nicht voll, aber /tmp oder der Ziel-Mount-Punkt ist voll. Bei großen Übertragungen können Log-Dateien, alte Backups und Cache-Ordner bereinigt werden. Eine dauerhafte Lösung könnte eine Erweiterung der Festplatte oder der Wechsel zu einem höherwertigen VPS-Plan sein.

Fehler: Connection reset oder Broken pipe

Bei langen Übertragungen kann es zu Netzwerkunterbrechungen kommen. Wenn Sie --partial und --append-verify verwenden, können Sie den Befehl erneut ausführen, um an der Stelle fortzufahren, an der Sie aufgehört haben. Auch die SSH-Keepalive-Einstellungen können hilfreich sein. Auf der Client-Seite kann eine Einstellung wie ServerAliveInterval 60 helfen, das Abbrechen der Verbindung im Leerlauf zu reduzieren.

Fehler: Sehr langsame Übertragung

Langsamkeit kann von der Anzahl der Dateien, dem Festplatten-I/O-Limit, der Kompressionslast oder der Netzwerkbandbreite herrühren. Bei einer großen Anzahl kleiner Dateien kann es in einigen Fällen schneller sein, zunächst ein Tar-Archiv zu erstellen; jedoch verringert sich dabei der Vorteil von rsync bei dateibasierten Änderungen. Bei großen und bereits komprimierten Dateien testen Sie den Befehl ohne den -z-Parameter. Außerdem sollten Sie mit Tools wie iotop, htop und iftop ermitteln, wo der Engpass auftritt, sei es bei der CPU, der Festplatte oder im Netzwerk.

Best Practices für Sicherheit

Bei der Dateiübertragung zwischen Servern sollte die Sicherheit nicht vernachlässigt werden. Insbesondere Root-Zugriffe, SSH-Schlüssel und Backup-Dateien sollten als sensibel angesehen werden. Zunächst wird empfohlen, anstelle von passwortgeschützten Anmeldungen SSH-Schlüssel zu verwenden. Die Berechtigungen der Schlüsseldateien sollten streng gehalten werden, private Schlüssel sollten nicht geteilt und nach Möglichkeit mit einem Passphrase geschützt werden.

Es ist eine gute Methode, einen temporären Benutzer für die Übertragung zu erstellen und ihm nur Zugriff auf die benötigten Verzeichnisse zu gewähren. Nach Abschluss des Vorgangs können die Berechtigungen dieses Benutzers entzogen oder das Konto deaktiviert werden. Auch die Einschränkung des SSH-Zugriffs auf bestimmte IP-Adressen verringert die Angriffsfläche. Firewall-Regeln, Fail2ban und die aktuelle Version von OpenSSH sollten zu den grundlegenden Kontrollen gehören.

Wenn Datenbank-Dump-Dateien, Kundenunterlagen oder Archive mit persönlichen Daten übertragen werden, sollten nach der Übertragung unnötige temporäre Dateien sowohl auf dem Quell- als auch auf dem Zielserver entfernt werden. Außerdem stellt das Hinterlassen von Backup-Dateien wie .sql, .zip oder .tar im Web-Stammverzeichnis ein erhebliches Sicherheitsrisiko dar. Diese Dateien sollten nach Möglichkeit in einem Verzeichnis aufbewahrt werden, das keinen Webzugang hat, oder nach Abschluss des Vorgangs gelöscht werden.

Verwendung von rsync für automatisierte Backups

rsync kann nicht nur für einmalige Übertragungen, sondern auch für regelmäßige Backups verwendet werden. Beispielsweise kann ein Cron-Job eingerichtet werden, um jeden Abend einen bestimmten Ordner auf einen Backup-Server zu senden. In diesem Szenario wird eine passwortlose, aber sichere Verbindung mit einem SSH-Schlüssel hergestellt, rsync überträgt nur die geänderten Dateien und es können Bandbreitenlimits gesetzt werden.

Beispielsyntax: rsync -a --delete --bwlimit=30000 /var/www/site/ backup@backup-ip:/backup/site/. Mit diesem Befehl kann das Zielverzeichnis mit dem Quellverzeichnis synchronisiert werden. Aufgrund des --delete-Parameters sollte jedoch Vorsicht geboten sein. Wenn eine Datei versehentlich im Quellverzeichnis gelöscht wird, wird sie auch im Zielverzeichnis gelöscht. Daher sollten in kritischen Backup-Strategien Snapshot-, Tagesordner- oder versioning-unterstützte Lösungen bevorzugt werden.

In Hosting-Operationen ist die 3-2-1 Backup-Regel eine gute Referenz: Es sollten mindestens 3 Kopien der Daten in 2 verschiedenen Umgebungen und 1 Kopie an einem anderen Standort aufbewahrt werden. rsync vereinfacht den Kopierteil dieser Strategie zwischen den Servern. Für umfassendere Infrastrukturen können Sie Ihre Pläne mit Backup-Lösungen und geschäftliche Hosting-Dienste erweitern.

Letzte Checkliste

Bevor Sie mit der Übertragung großer Dateien beginnen, reduziert die Durchführung der folgenden kurzen Liste das Risiko von Fehlern. Diese Liste sollte insbesondere in Produktionsumgebungen Standardverfahren werden.

  • Ist rsync auf dem Quell- und Zielserver installiert?
  • Wurde die SSH-Verbindung mit dem richtigen Benutzer und Port getestet?
  • Gibt es genügend Speicherplatz auf dem Zielserver?
  • Wurde der erste Vorgang mit --dry-run überprüft?
  • Wurde der Wartungsmodus für die Live-Website und die letzte Synchronisierung geplant?
  • Wurde der Zielpfad bei Verwendung von --delete definitiv verifiziert?
  • Werden nach der Übertragung Dateiüberprüfungen hinsichtlich Größe, Berechtigungen und Anwendungen durchgeführt?
  • Werden temporäre Backup- und Dump-Dateien sicher gelöscht?

Diese Kontrollen mögen einfach erscheinen, jedoch sind die häufigsten Probleme in der Realität oft das Ergebnis eines falschen Zielverzeichnisses, fehlender Berechtigungen, unzureichendem Speicherplatz und nicht geplanten DNS-Übertragungen. Ein geplanter rsync-Prozess verkürzt sowohl die Übertragungszeit als auch erhöht die Wahrscheinlichkeit einer reibungslosen Durchführung.

Häufig gestellte Fragen

Beginnt die Übertragung mit dem rsync-Befehl über SSH von vorne, wenn die Verbindung unterbrochen wird?

Nein, wenn die richtigen Parameter verwendet werden, beginnt sie nicht von vorne. Die Optionen --partial und --append-verify helfen dabei, große, unvollendete Dateien zu bewahren und die Übertragung fortzusetzen, wenn der Befehl erneut ausgeführt wird. Dennoch ist es ratsam, vor der erneuten Ausführung des Befehls den Speicherplatz auf dem Zielserver und den Status der unvollständigen Dateien zu überprüfen.

Kann eine Datenbank direkt mit rsync übertragen werden?

rsync überträgt Dateien; es ist nicht gesund, aktive Datenbankdateien direkt zu kopieren. Für MySQL oder MariaDB sollten mysqldump oder physische Backup-Tools verwendet werden, und die entstehenden Backup-Dateien sollten mit rsync auf den Zielserver übertragen werden. In aktiven Systemen sollte zur Gewährleistung der Datenintegrität ein Wartungsmodus oder eine Replikationsstrategie eingeplant werden.

Benötigen beide Server Root-Zugriff für die Verwendung von rsync?

Root-Zugriff ist nicht erforderlich. Ein Benutzer mit Schreibrechten im Zielverzeichnis reicht aus. Wenn jedoch die Dateieigentumsrechte, Systemverzeichnisse, ACL oder spezielle Berechtigungen aufrechterhalten werden müssen, können höhere Berechtigungen erforderlich sein. Sicherheitsmäßig ist es besser, möglichst mit einem Benutzer mit eingeschränkten Rechten zu arbeiten.

Ist der --delete-Parameter sicher?

Der --delete-Parameter ist, wenn er richtig verwendet wird, sehr nützlich, um das Zielverzeichnis mit dem Quellverzeichnis exakt zu synchronisieren; jedoch kann er bei falscher Verwendung zu Datenverlusten führen. Daher sollten Befehle mit --delete immer zuerst mit --dry-run getestet und die Quell- und Zielpfade sorgfältig überprüft werden.

Ist rsync oder scp besser für große Dateiübertragungen?

Bei einmaligen kleinen Kopieraktionen kann scp ausreichen; jedoch ist rsync bei großen Dateien, einer Vielzahl von Dateien und wiederholten Synchronisierungen im Allgemeinen überlegen. Denn es kann geänderte Daten erkennen, unvollständige Übertragungen fortsetzen, die Bandbreite begrenzen und einen Testmodus bereitstellen.

Zusammenfassung und nächste Schritte

Die Übertragung großer Dateien zwischen zwei Servern mit dem rsync-Befehl über SSH ist eine schnelle, sichere und verwaltbare Methode. Mit den richtigen Parametern wird sie widerstandsfähig gegen Verbindungsabbrüche, spart Zeit, indem nur die geänderten Dateien übertragen werden, und minimiert die Unterbrechungen bei der Migration von Live-Websites. Um die besten Ergebnisse zu erzielen, führen Sie zunächst SSH- und Speicherplatzprüfungen durch, testen Sie mit --dry-run und planen Sie die Hauptübertragung systematisch.

Wenn Sie einen neuen Server, hohen Speicherkapazitäten oder eine leistungsfähigere Hosting-Infrastruktur in Betracht ziehen, können Sie die Lösungen von Hostragons überprüfen und Ihre Migration mit VPS-, Hosting-, Domain- und SSL-Optionen sicherer gestalten. Beginnen Sie mit kleinen Tests für einen reibungslosen Übergang, messen Sie die Ergebnisse und planen Sie die letzte Synchronisierung gründlich.

Diesen Artikel teilen:

Hostragons-Team

Aktuelle Leitfäden unseres Expertenteams zu Hosting, Servern und Domainnamen. Lassen Sie uns gemeinsam die passende Lösung für Ihr Projekt finden.

Kontaktieren Sie uns