init 1 über ssh

Speedysurf

New Member
Hallo,

ich möchte einen Server umziehen und nutze dazu rsync. Damit auch wirklich alle Dienste beendet sind möchte ich den Server mit init 1 auf das entsprechende Runlevel setzen. Meine ssh Verbindung wird dann leider auch abgebrochen. Wie macht ihr sowas?
 
Wenn du alle nach aussen erreichbaren Dienste (ausser SSHd =D ) und den Cron-Daemon stoppst sollte eigentlich nicht viel noch am System rumwurschteln... zumindest nichts was bei einem rsync wichtig waere.
 
Excludes helfen dir auch nicht wirklich weiter. In /dev liegen einige Gerätedateien, die nicht von udev kommen und die du gern mit rsyncen magst. Aber halt nur die.

Jeder, der mal bei ner Gentoo-Installation verpeilt hat, erst das Stage3 zu entpacken und erst dann mit Bind-Mounts das /dev vom Installer zu holen, weiß schmerzlich, was ich meine ;-)
 
Wie macht ihr sowas?
Niemals aus dem laufenden System heraus!
Beide Systeme ins Rescue booten, das Zielsystem partitionieren und formatieren und dann:
Code:
cd /mnt/hdd && tar -cSp --atime-preserve --numeric-owner -f - . |\
 ssh root@server "( tar -xvSp --atime-preserve --numeric-owner -f - -C /mnt/hdd/ )"
Configs anpassen, Bootcode installieren, booten, fertig.
 
Bitte nicht steinigen, aber ein Quick-und-Dirty Hack wäre folgendes. :cool:

1. rsync aus dem laufenden System (Sourcesystem) mit den obig angemerkten excludes auf das Destinationsystem (befindet sich im Rescuemodus)!
2. Sourcesystem im Rescuemodus starten und dann nochmals ein rsync. Bitte --delete nicht vergessen! Dadurch werden nur die Änderungen gegenüber dem laufenden System übertragen.
3. Fertig. :)

Vorteil dieser Methode ist, dass die Downtime minimiert wird, da bereits beim ersten Syncvorgang ein Großteil der Daten übertragen werden, der sich beim zweiten nicht mehr ändert.

Herzliche Grüße aus Wien.
 
Last edited by a moderator:
2. Sourcesystem im Rescuemodus starten und dann nochmals ein rsync. Bitte --delete nicht vergessen! Dadurch werden nur die Änderungen gegenüber dem laufenden System übertragen.

Das ist nicht dein Ernst, oder?:rolleyes:

Falls es nicht schon zu spät ist: Lieber Threadowner, TU DAS NICHT!
 
Warum genau sollte er --delete nicht anhaengen?
Sonst sammelt sich der Datenmuell von zB PHP-Sessions bei jedem rsync an.
 
Ich würde den ersten Sync aus dem laufenden System per rsync von einem bind-Mount aus machen, ggf. je Partition/Volume mit den passenden Parametern wiederholen.

cd /mnt
mkdir blub
mount -o bind / blub
rsync -avP blub/ <ZIEL>

Hat den Vorteil, dass z.B. proc etc. als leere Verzeichnisse angelegt werden, aber deren Inhalt nicht übertragen wird. Die vergisst man sonst ganz gerne und das kopierte System kommt später nicht mehr hoch.

Das ganze ggf. wiederholen, kurz vor dem finalen Vorgang, so minimiert man die Downtime.

Zum Schluss dann einmal aus einem Rescue-System heraus den finalen rsync machen, dieser sollte dann nicht allzu lange dauern.
 
Hallo blupp!

Das ist nicht dein Ernst, oder?:rolleyes:

Falls es nicht schon zu spät ist: Lieber Threadowner, TU DAS NICHT!

DOCH! Sonst hast Du eine Mixture aus laufendem und Rescuesystem (alte pids, etc.) und das wollen wir nicht. :eek: Diese Dinge aus dem laufenden System müssen beim zweiten Syncvorgang gelöscht werden! d4f hat ein weiteres, treffendes Beispiel angeführt

Warum genau sollte er --delete nicht anhaengen?
Sonst sammelt sich der Datenmuell von zB PHP-Sessions bei jedem rsync an.

von Dingen, die man vermeiden sollte.

Herzliche Grüße aus Wien.

PS: Ach ja, nicht vergessen die Einstellungen von grub (hier bietet sich ein chroot-wechsel inkl. update-grub und grub-install), fstab, udev, usw. am Destinationsytem updaten.
 
Last edited by a moderator:
DOCH! Sonst hast Du eine Mixture aus laufendem und Rescuesystem (alte pids, etc.) und das wollen wir nicht. :eek: Diese Dinge aus dem laufenden System müssen beim zweiten Syncvorgang gelöscht werden! d4f hat ein weiteres, treffendes Beispiel angeführt

Huhu,

Okay. Dann entschuldige mein "schnelles" OHJE. Gibt ja so paar Vögel mit "rm -rf /*" Gedanken. Dann gehörst du wohl nicht dazu :)
 
Servus blupp1,

Huhu,
Okay. Dann entschuldige mein "schnelles" OHJE. Gibt ja so paar Vögel mit "rm -rf /*" Gedanken. Dann gehörst du wohl nicht dazu :)

kein Problem. :) "rm -rf /*" löst sicher das eine oder andere Problem, aber nicht dieses ... :p

Herzliche Grüße aus Wien.
 
Ihr dürft gerne meine und die doppelte rsync-Variante benchmarken (Zeit+Traffik) und den Festplatteninhalt vergleichen. Ich wette einen virtuellen Kasten Bier darauf, dass die rsync-Variante langsamer, traffikintensiver und fehleranfälliger ist, als meine Variante.
 
Die Wette gewinnst Du, hab letzte Nacht nach deinem Post aus Neugier auf ein blankes System getestet. Da ich die Zeiten kenne die meine Rsyncs sonst brauchen .... echt geil. Man darf nur das anpassen im Nachgang nicht vergessen, das brachte mir erst nen Rückschlag ;)

Gruß Sven
 
Tagchen Joe,

Ihr dürft gerne meine und die doppelte rsync-Variante benchmarken (Zeit+Traffik) und den Festplatteninhalt vergleichen. Ich wette einen virtuellen Kasten Bier darauf, dass die rsync-Variante langsamer, traffikintensiver und fehleranfälliger ist, als meine Variante.

Du hast natürlich recht. :) Die tar-Pipe hat beim vollständigen Backup gegenüber rsync und auch cp entscheidene Vorteile. Aber rsync hat mich noch nie enttäuscht. Beim Synchronhalten von Installationen ist es IMHO unschlagbar.

Herzliche Grüße aus Wien.
 
Last edited by a moderator:
rsync taugt zum Syncen/Backup von Nutzdaten, zu mehr aber nicht wirklich.
Wenn rsync so toll wäre, wie es sich manche schönreden, dann wäre es längst unter einer BSD-Lizenz reimplementiert und in die Basisinstallationen der diversen BSDs integriert worden.
 
Vielen Dank für Eure Antworten. Hätte ich ja nicht gedacht, dass es so ein "Streitthema" ist ;)

Da mir die Zeit nicht so wichtig ist werde ich rsync benutzen. Der Vorschlag mit dem kopieren im "Normalmodus" und dann noch mal im Rescuemodus hört sich nicht schlecht an.

Ich würde dann folgenden Befehl ausführen auf dem Zielserver im Rescuemodus beider:
Code:
rsync -av --numeric-ids --delete --progress --exclude /sys --exclude /boot --exclude /dev --exclude /proc --exclude /etc/mtab --exclude /etc/fstab --exclude /etc/udev/rules.d --exclude /lib/modules IP-QuellServer:/mnt/hdd /mnt/hdd

Danach noch mit Suchen/Ersetzen die IP's anpassen.
 
Back
Top