This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Linux Server migrieren mit rsync
#1
Hallo und guten Tag,

ich möchte euch heute zeigen wie Ihr eure Linuxmaschine auf eine andere Migriert.


Voraussetzungen:

2 Linuxmaschinen gleicher Version
SSH rootzugang zu beiden Maschinen

Warnungen vorab: 

Die Migration wird mit rsync durchgeführt, falls Ihr einen großen Server habt, dauert der Kopiervorgang unter Umständen sehr lange und könnte (falls Ihr einen gehosteten Server migriert) kosten für Traffic verursachen. Erstellt vorher ein Backup der Maschine(n).

In meinem Beispiel nutze ich Debian 8.

Beide Server vorbereiten:

Um Dateninkonsistenz oder andere ungewollte Beschädigungen an Datenbanken etc. zu verhindern. Sollten vorübergehend die Dienste von Datenbanken/Webservern gestoppt werden. Diese können nach erfolgreichem Abschluss von rsync wieder gestartet werden:
Code:

Code:
service apache stop
service mysql stop
service webmin stop


Verbindet euch als root via SSH auf beide Server und installiert rsync und mingetty:
Code:

Code:
apt-get install rsync mingetty


Um den Kopiervorgang direkt mit root Rechten durchzuführen müssen wir den SSH login als root zulassen, dazu müssen wir folgende Datei bearbeiten:
Code:

Code:
nano /etc/ssh/sshd_config


Folgende Zeile ändern:
Code:

Code:
PermitRootLogin without-password
in:
Code:

Code:
PermitRootLogin yes


Um die Änderung zu übernehmen, den SSH Dienst neu starten:
Code:

Code:
service ssh restart

Unter Umständen müsst Ihr euch erneut via SSH auf den Server verbinden.


Auf dem Quellserver:

Neue Datei erzeugen (Wenn eure Maschine eine GUI hat):
Code:

Code:
nano /etc/inittab


Folgenden Inhalt darunter einfügen (Wenn eure Maschine eine GUI hat):
Code:

Code:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6


Datei mit Ausnahmen erzeugen:
Code:

Code:
nano /root/exclude.txt


Diesen Inhalt einfügen, wenn ihr Wisst was ihr tut, könnt Ihr die Zeilen auch anpassen. (Die eingefügten Verzeichnisse werden nicht auf den Zielserver übertragen) In meinem Fall nehmen ich die Zeile mit CentOS raus, da ich Debian nutze (Debian ist fast identisch mit Ubuntu). Die Klammer bitte nicht mitschreiben/kopieren:
Code:

Code:
/etc/fstab
/etc/sysconfig/network-scripts/* (CentOS Distributionen)
/etc/network/* (Ubuntu Distributionen)
/proc/*
/tmp/*
/sys/*
/dev/*
/mnt/*
/boot/*


Übertragung starten:
Code:

Code:
rsync --exclude-from="/root/exclude.txt" --delete --numeric-ids -avpogtStlHz -e "ssh -p <ssh port>" / root@<Ziel IP>:/
Bei gehosteten VServern (Es sind einzigartige "VM-Dateien" auf dem Zielserver vorhanden die benötigt werden damit der Server Hoch- und Herunterfahren kann, deshalb den parameter "--delete" weglassen damit diese nicht gelöscht werden):
Code:

Code:
rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz -e "ssh -p <ssh port>" / root@<target ip>:/



Wenn der Vorgang abgeschlossen ist, solltet Ihr den Zielserver einmal neu starten und testen ob alles so funktioniert wie es soll. Gegebenenfalls müsst ihr in manchen Konfigurationen eure IP-Adresse anpassen, je nach dem ob diese sich dauerhaft ändert.

Auf dem Zielserver:
Code:

Code:
shutdown -r now


Auch den rootzugriff via SSH sollten wir aus Sicherheitsgründen wieder abschalten:
Code:

Code:
nano /etc/ssh/sshd_config


Folgende Zeile ändern:
Code:

Code:
PermitRootLogin yes
in:
Code:

Code:
PermitRootLogin without-password


Prüft genau ob die Datenbank auch vollständig übergeben worden ist (z.B. mit phpmyadmin)

Falls Ihr rsync nicht weiter benötigt könnt Ihr das Paket auch wieder entfernen:
Code:

Code:
apt-get purge rsync

Je nach Vorhaben könnt Ihr den Quellserver nun abschalten. 

Fertig.


Falls es Probleme gibt oder Fragen auftreten, gerne Kommentieren.

Gruß Towerplease
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Teamspeakserver unter Linux installieren Towerplease 3 15.335 17.10.2019, 21:17
Letzter Beitrag: Mariashugs

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste