Frage Wie sichert man einen vollen Centos Server?


Ich habe vor ein paar Wochen von einem dedizierten Server zu einem VPS gewechselt. Nun, da auf dem VPS alles gut funktioniert, möchte ich den dedizierten Server herunterfahren und mein Konto mit dem Hosting-Unternehmen schließen.

Aus Gründen der Sicherheit und um sicherer zu sein, möchte ich eine vollständige Sicherung des Servers durchführen, bevor Sie ihn beenden.

Am besten wäre eine Sicherung, die ich durchsuchen könnte, wenn ich finde, dass ich etwas in der Sicherung brauche.

Was wäre die beste Lösung von der Kommandozeile aus?

Aktualisierung:

Medium: Netzwerk


23
2018-03-08 18:30


Ursprung




Antworten:


Das beste Werkzeug, das dafür verwendet wird, ist wahrscheinlich Dump, welches ein Standard-Linux-Tool ist und Ihnen das gesamte Dateisystem zur Verfügung stellt. Ich würde so etwas tun:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Dies macht einen Dateisystem-Dump von / (stelle sicher, dass du keine anderen Mounts dumpen musst!), Komprimiere es mit gzip und ssh auf einen entfernten Server (backupserver.example.com) und speichere es in / backup / . Wenn Sie später die Sicherung durchsuchen müssen, verwenden Sie restore:

restore -i

Eine andere Option, wenn Sie keinen Zugriff auf dump haben, ist die Verwendung von tar und etwas wie

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

Aber Änderungen im Dateisystem werden von tar nicht behandelt.


25
2018-03-08 18:42



Dieser Dump-Befehl kümmert sich um installierte Programme auch richtig? wie nginx, etc .. - Thale
Dump ist eine wörtliche Kopie des Dateisystems, mit allem drin. Solange Sie nicht mehr als eins haben (überprüfen Sie, indem Sie laufen mount) das ist alles was du brauchst. - Bill Weiss
Ich verstehe das -bash: /sbin/dump: No such file or directory - Lucas Bustamante
@ LucasB Möglicherweise müssen Sie den Speicherauszug installieren. Auf Ubuntu machst du sowas wie sudo apt-get install dump - pehrs


Wenn Sie von Linux zu Linux sichern möchten, würde ich Dump nicht verwenden, weil es unbequem ist, wenn Sie auf etwas innerhalb der Backup-Datei zugreifen müssen. Einfach benutzen rsync über SSH zu Führen Sie eine vollständige Systemsicherung durch sollte in den meisten Fällen in Ordnung sein:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

Dadurch bleibt alles wichtig und lassen Sie die Sicherung ohne zusätzliche Schritte durchsuchen.

Vielleicht möchten Sie rsync hinzufügen --delete Option, wenn Sie dies ausführen   mehrmals in den gleichen Backup-Ordner. In diesem Fall stellen Sie sicher, dass   Der Quellpfad endet nicht mit /*oder diese Option wird nur haben   Auswirkungen auf die Dateien in den Unterverzeichnissen des Quellverzeichnisses   aber es hat keine Auswirkungen auf die Dateien, die direkt in der   Quellverzeichnis


8
2017-07-31 17:34





Auf welchem ​​Medium speichern Sie das Backup? Wenn Sie über das Netzwerk sichern, würde ich sshfs / nfs mein Ziel auf dem Quellserver mounten und etwas wie folgendes ausführen:

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

Beachten Sie, dass nicht getestet wurde, nur meine allgemeine Meinung, die Sie mehr oder weniger als das ausschließen möchten.


3
2018-03-08 18:41





Ich benutze den oben beschriebenen Befehl von Pehrs, aber für den FTP-Einsatz modifiziert. Crontab Beispiel:

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x enthält FTP-Zugangsdaten und Regeln für den Upload:

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

Anmerkung 1: Lftp kann eine hohe CPU-Auslastung verursachen, wenn das Ziel nicht erreichbar ist und versucht, die Verbindung wiederherzustellen. Da viele Hosting-VPS in solchen Fällen zurückgesetzt werden können, schlage ich vor, die CPU-Last zu überwachen, um den LFTP-Prozess zu beenden, wodurch verhindert wird, dass der Server vom Host-Besitzer heruntergefahren wird. Ein Beispiel für einen Lastdurchschnitt> 1,33 für Prozesse lftp (und Dropbox). Leider kann ich mich nicht an die Quelle des ursprünglichen Codes erinnern, danke an jemanden:

Crontab */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***s@gmail.com
fi

Anmerkung 2: Das Dienstprogramm dump funktioniert möglicherweise nicht mit OpenVZ VPS oder einigen anderen virtuellen Servern.


3
2017-11-15 20:39





hast du von ... gehört Bacula?

Bacula ist eine Reihe von unternehmensreifen Open-Source-Computerprogrammen, mit denen Sie (oder der Systemadministrator) die Sicherung, Wiederherstellung und Verifizierung von Computerdaten über ein Netzwerk von Computern unterschiedlicher Art verwalten können. Bacula ist relativ einfach zu bedienen und effizient und bietet viele erweiterte Speicherverwaltungsfunktionen, die das Auffinden und Wiederherstellen von verlorenen oder beschädigten Dateien erleichtern. In technischer Hinsicht handelt es sich um ein netzwerkbasiertes, netzwerkbasiertes Backup-Programm.


2
2018-03-12 18:47