Migration mit rsync (Linux)

Mit rsync können Sie Dateien, Verzeichnisse und komplette Serverinhalte sicher und effizient über SSH von einem Linux-Server auf einen anderen übertragen — ohne Control Panel, direkt auf der Kommandozeile.

Voraussetzungen: SSH-Zugriff auf beide Server als root. rsync ist auf den meisten Linux-Distributionen vorinstalliert — falls nicht: apt install rsync bzw. yum install rsync.

rsync-Flags für die Migration

Für eine vollständige Server-Migration empfehlen sich folgende Flags:

FlagBedeutung
-aArchiv-Modus — erhält Berechtigungen, Eigentümer, Symlinks und Zeitstempel
-vAusführliche Ausgabe — zeigt übertragene Dateien an
-zKomprimierung während der Übertragung — spart Bandbreite
--progressZeigt Fortschritt je Datei an
--deleteLöscht Dateien auf dem Ziel, die auf der Quelle nicht mehr existieren — für saubere Synchronisierung
--excludeSchließt Verzeichnisse oder Dateimuster von der Übertragung aus

Schritt 1: SSH-Verbindung zwischen den Servern einrichten

SSH-Key vom Quellserver auf den Zielserver kopieren für passwortlosen Zugriff.

Führen Sie dies auf dem Quellserver aus — ersetzen Sie die IP durch die des Zielservers:

Terminal
ssh-keygen -t ed25519 -C "migration" ssh-copy-id root@ZIELSERVER_IP

Schritt 2: Testlauf durchführen

Mit --dry-run prüfen was übertragen wird, ohne Daten zu verschieben.

Führen Sie zuerst einen Testlauf durch, um zu sehen was übertragen werden würde — ohne tatsächlich Daten zu verschieben:

Terminal
rsync -avz --dry-run --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp / root@ZIELSERVER_IP:/

Prüfen Sie die Ausgabe auf unerwartete Dateien oder Fehler bevor Sie den echten Transfer starten.

Schritt 3: Vollständigen Transfer starten

Alle Daten vom Quellserver auf den Zielserver übertragen.

Führen Sie den eigentlichen Transfer aus — am besten in einer screen- oder tmux-Sitzung, damit er bei SSH-Trennung weiterläuft:

Terminal
screen -S migration rsync -avz --progress --delete --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run / root@ZIELSERVER_IP:/

Schließen Sie während des Transfers keine aktiven Dienste auf dem Quellserver — aktive Datenbankdateien sollten separat per Datenbank-Migration übertragen werden.

Schritt 4: Delta-Sync vor dem Umschalten

Kurz vor dem DNS-Wechsel einen zweiten Sync durchführen, um Änderungen nachzuziehen.

Führen Sie unmittelbar vor dem DNS-Wechsel einen zweiten rsync-Lauf durch — dieser überträgt nur die Änderungen seit dem ersten Lauf und dauert deutlich kürzer:

Terminal
rsync -avz --progress --delete --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run / root@ZIELSERVER_IP:/

Schritt 5: Dienste auf dem Zielserver starten & testen

Webserver, Datenbank und weitere Dienste auf dem Zielserver starten und prüfen.
1.Starten Sie alle Dienste auf dem Zielserver (systemctl start nginx, systemctl start mysql etc.)
2.Testen Sie die Anwendungen über die IP-Adresse des Zielservers
3.Stellen Sie die DNS-Einträge auf die neue IP um, sobald alles funktioniert

Weiterführende Dokumentation

Alle rsync-Optionen finden Sie in der offiziellen Dokumentation.