Lösung 1:
Sie möchten also Ihr gesamtes Laufwerk ohne all diese bösen Fehler sichern und auch alle /proc und andere temporäre Ordner herausfiltern?
Eine Option besteht darin, den Stammordner wie folgt in einen anderen Ordner innerhalb des Dateisystems einzuhängen:
$ cd /mnt
$ mkdir drive
$ mount --bind / drive
Dadurch erhalten Sie alle Dateien auf Ihrem Laufwerk, die nicht als temporär gelten (wie die Ordner /proc oder /sys).
Jetzt, da Sie einen sauberen Überblick über Ihren Stammordner haben, können Sie ihn einfach mit dem Standard cp
auf Ihr Backup-Laufwerk kopieren oder rsync
. Etwas in der Art von:
cp -R /mnt/drive /mnt/backupdrive
Dies löst Ihre beiden genannten Probleme:
- Sie geraten nicht in eine Rekursion, weil die Backup-Festplatte nicht im Laufwerk gemountet ist (Sichtweise)
- Sie verpassen keine wichtigen Dateien, weil Sie sie alle mitnehmen
Siehe auch:man mount(8)
Lösung 2:
Unter Linux ist alles eine Datei. Es ist über rsync möglich, aber es gibt Dinge zu beachten, die (bestenfalls) schwer zu umgehen sind.
Sie sollten zuerst über die Replikation nachdenken, insbesondere bei Datenbanken. Außerdem ist es eine gute Idee, einen Proxy/Load Balancer vor Ihrem primären Server einzurichten, damit Sie während der Umstellung einfach zwischen Ihren primären und gespiegelten Servern hin und her wechseln können.
Auf Hardwareebene ist die beste Situation, einen spiegelähnlichen Server auf einer anderen Seite zu haben, mit der gleichen Anzahl von Ethernet-Ports, dem gleichen Festplattenlayout und so weiter. Alle Abweichungen implizieren die Notwendigkeit von Systemkonfigurationsänderungen.
Das heißt, wenn Sie zwei eth-Ports haben, möchten Sie sicherstellen, dass Netzwerkkonfiguration, Firewall usw. mit dem Schnittstellennamen auf beiden Servern übereinstimmen, und falls sie sich unterscheiden, müssen Sie entweder die Konfiguration nach rsync ändern oder den Gerätenamen auf dem zweiten ändern (Ziel-)Server.
Gleiches gilt für das Partitionslayout. Sie sollten dieselben Partitionen wie auf Ihrem primären Server erstellen, aber wenn Sie sie von Grund auf neu erstellen, erhalten Sie unterschiedliche UUIDs, sodass Sie fstab, grub, mdadm (falls Soft-Raid beteiligt ist) und so weiter ändern müssen .
Aber es gibt auch viele Dinge, die schief gehen können, wie Datenbanken, die inkonsistent sein können, wenn sie nicht vorher gestoppt werden (bevor rsync ausgeführt wird).
Die beste Strategie besteht darin, zuerst die Hardware und das Dateisystem (Partitionen) so vorzubereiten, dass sie der Konfiguration des primären Servers entsprechen. Mounten Sie dann leere Partitionen über ein Zwischensystem (wie Live-CD mit temporär installiertem SSH-Server). Sie erstellen leere /proc, /dev, /sys und synchronisieren dann den Rest wie folgt:
rsync -avz -H --delete /etc /bin (...and so on) destserver:/mnt/yourrootfs/
Dann müssen Sie grub auf dem Gerät installieren und an der Konfiguration arbeiten, um es bootfähig zu machen, die Netzwerkkonfiguration, fstab und andere zuvor erwähnte Dinge ändern.
Sie können auch versuchen, ein neues System zu installieren (mit derselben Version, die Sie auf Ihrem primären Server verwenden), es dann ausschalten, es über ein anderes, temporäres System (wie eine Live-CD) mounten und dann etwas anderes als /proc, / ersetzen. sys, /dev und /boot mit rsync.
Aber es ist nur eine allgemeine Idee. Je nachdem, was Sie tatsächlich auf diesem Server haben, wie Ihre Konfiguration, Ihr Netzwerk und Ihr Hardware-Setup sind, können die Dinge komplizierter werden. Und am Ende des Tages könnte dies wirklich schwierig oder unmöglich sein, dies ohne merkliche Ausfallzeiten zu tun.
Lösung 3:
Was Sie eigentlich wollen, sind Wiederherstellungen. Was auch immer Sie tun, Sie müssen es regelmäßig wiederherstellen und testen.
Linode hat einen Backup-Service. Die Snapshots können nach einem begrenzten vordefinierten Zeitplan oder mit einer API erstellt werden.
Ein Vorteil von Snapshot-basierten Backups besteht darin, dass sie einen genauen Zeitpunkt bieten, da sich die Daten nicht ändern, während eine Kopie erstellt wird. Snapshots können auch einfach auf einem anderen Host wiederhergestellt werden, in diesem Fall einem neuen Linode.