rsync ist das Standardwerkzeug, um Dateien zwischen Linux-Servern zu kopieren und zu synchronisieren. Es überträgt nur geänderte Teile von Dateien, kann unterbrochene Übertragungen fortsetzen und erhält Rechte, Eigentümer und Zeitstempel. Damit eignet es sich ideal, um eine Website oder einen ganzen Server auf einen neuen vServer umzuziehen. Diese Anleitung zeigt die wichtigsten Befehle und einen Umzug mit minimaler Ausfallzeit.

Schritt 1: rsync installieren

rsync muss auf beiden Servern installiert sein:

sudo apt install -y rsync

Die Grundform

rsync -avh --progress QUELLE/ ZIEL/
  • -a (archive): rekursiv kopieren und Rechte, Eigentümer, Zeitstempel und symbolische Links erhalten
  • -v (verbose): ausführliche Ausgabe
  • -h: Größen lesbar anzeigen
  • --progress: Fortschritt pro Datei anzeigen

Achtung beim Schrägstrich: quelle/ mit Schrägstrich kopiert den Inhalt des Verzeichnisses. quelle ohne Schrägstrich kopiert das Verzeichnis selbst und legt im Ziel einen Unterordner quelle an.

Dateien zu einem anderen Server übertragen

rsync nutzt automatisch SSH. Vom alten Server zum neuen:

rsync -avh --progress /var/www/ihre-domain.at/ benutzer@NEUE-SERVER-IP:/var/www/ihre-domain.at/

Vom neuen Server aus Dateien vom alten holen:

rsync -avh --progress benutzer@ALTE-SERVER-IP:/var/www/ihre-domain.at/ /var/www/ihre-domain.at/

Läuft SSH auf einem anderen Port, ergänzen Sie -e "ssh -p 2222".

Immer zuerst ein Probelauf

Mit --dry-run (kurz -n) zeigt rsync, was es tun würde, ohne etwas zu verändern:

rsync -avhn --delete /var/www/ihre-domain.at/ benutzer@NEUE-SERVER-IP:/var/www/ihre-domain.at/

Das ist besonders wichtig bei der Option --delete.

Nützliche Optionen

OptionWirkung
--deleteDateien im Ziel löschen, die in der Quelle nicht mehr existieren. Das Ziel wird zum exakten Spiegel. Vorher immer mit --dry-run prüfen.
--exclude='cache/'Dateien oder Verzeichnisse auslassen, mehrfach verwendbar
-zDaten während der Übertragung komprimieren. Hilfreich bei langsamen Verbindungen und Textdateien.
--partialteilweise übertragene Dateien behalten, damit ein Abbruch nicht von vorne beginnt
-H -A -XHardlinks, ACLs und erweiterte Attribute erhalten. Wichtig bei einem kompletten Serverumzug.
--numeric-idsBenutzer und Gruppen anhand der Nummer übertragen statt anhand des Namens
--bwlimit=20MBandbreite begrenzen, damit der Produktivbetrieb nicht beeinträchtigt wird

Umzug mit minimaler Ausfallzeit

Bei großen Datenmengen übertragen Sie zuerst alles im laufenden Betrieb und gleichen dann in einem kurzen Wartungsfenster nur noch die Änderungen ab.

  1. Erster Durchlauf im laufenden Betrieb: Dauert je nach Datenmenge lange, aber die Website bleibt online.
    sudo rsync -aHAX --numeric-ids --partial --info=progress2 \
      /var/www/ root@NEUE-SERVER-IP:/var/www/
  2. Weitere Durchläufe: Wiederholen Sie den Befehl kurz vor der Umstellung. Jetzt werden nur noch Änderungen übertragen, was meist nur Sekunden bis Minuten dauert.
  3. Wartungsfenster: Stoppen Sie die Anwendung auf dem alten Server bzw. aktivieren Sie den Wartungsmodus. Erstellen Sie einen aktuellen Datenbank-Dump und übertragen Sie ihn.
  4. Letzter Durchlauf mit --delete: Damit ist das Ziel ein exaktes Abbild.
    sudo rsync -aHAX --numeric-ids --delete /var/www/ root@NEUE-SERVER-IP:/var/www/
  5. Datenbank einspielen, Dienste starten und DNS umstellen. Senken Sie die TTL der DNS-Einträge bereits einen Tag vorher, siehe DNS-Änderungen, TTL und Propagation verstehen.

Kopieren Sie bei einem Umzug keine Systemverzeichnisse wie /etc, /boot oder /usr blind auf einen neuen Server. Installieren Sie die Software dort neu und übertragen Sie nur Ihre Daten und gezielt einzelne Konfigurationsdateien.

Wichtige Verzeichnisse beim Umzug

  • Webinhalte, meist /var/www
  • Konfigurationen Ihrer Anwendungen, etwa /etc/nginx/sites-available
  • Docker-Projekte mit Compose-Dateien und Volumes, etwa /opt
  • Home-Verzeichnisse und Cronjobs (crontab -l, /etc/cron.d)
  • Zertifikate werden auf dem neuen Server am besten neu ausgestellt

Fehlerbehebung

„rsync: command not found“ auf der Gegenseite

rsync ist auf dem anderen Server nicht installiert. Installieren Sie es dort.

„Permission denied“

Der verwendete Benutzer darf die Dateien nicht lesen oder schreiben. Verwenden Sie für Systemdaten root bzw. sudo auf beiden Seiten. Ist der Root-Login per SSH gesperrt, nutzen Sie auf der Zielseite --rsync-path="sudo rsync".

Eigentümer stimmen nach dem Kopieren nicht

Die Benutzer haben auf dem neuen Server andere Nummern. Legen Sie die Benutzer vorher mit denselben IDs an oder korrigieren Sie die Rechte danach mit chown -R.

Einen neuen Server für Ihren Umzug finden Sie bei unseren vServern. Gerne unterstützen wir Sie auch beim Umzug, sprechen Sie uns per Ticket an.

War diese Antwort hilfreich? 0 Benutzer fanden dies hilfreich (0 Stimmen)