Debian - Komplettsicherung anlegen

Stefanabg

Cadet 4th Year
Registriert
Juni 2016
Beiträge
102
Hallo zusammen,
ich bin etwas verzweifelt, da ich nun seit Stunden nach einer Lösung suche.
Ich möchte meinen Debian Server mit rsync sichern (klappt soweit), folgendes Script verwende ich:

Code:
#!/bin/bash
# SICHERUNG MIT RSYNC

#SICHERUNG DER PAKETQUELLEN:
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > /Paketquellen/packages.list.save 

#PAKETSTATUS SICHERN:
apt-mark showauto > /Paketquellen/package-states-auto
apt-mark showmanual > /Paketquellen/package-states-manual 

#FUER ERNSTFALL-PAKETE WIEDERHERSTELLEN:
#xargs -a "/Paketquellen/packages.list.save" apt-get install 
#xargs -a "/Paketquellen/package-states-auto" apt-mark auto
#xargs -a "/Paketquellen/package-states-manual" apt-mark manual 

SOURCES="/root /etc /home /var/www /Paketquellen"

for d in $SOURCES ; do
	rsync -av --delete $d /backup
done

tar -cvzf "/mnt/backup/$(date '+%y-%m-%d').tar.gz" /backup

Die Dateien werden korrekt auf mein Netzlaufwerk kopiert.

Jetzt habe ich mir zum Test ein frisches Debian installiert, alle Anwendungen wieder installiert und die Ordner aus dem Backup zurück kopiert.
Es werden jedoch keine Änderungen an den Dateien in /etc vorgenommen. Die alten User sind nicht vorhanden und Webseiten können nicht aufgerufen werden, weil Apache die Rechte nicht hergibt...also genau so als wäre das System frisch installiert.

Könnt ihr mir eine bessere Variante erläutern, wie ich ein Backup der wichtigen Daten im Betrieb vornehme und wieder zurück sichern kann? Leider finde mithilfe von Google nichts was zufriedenstellend funktioniert...

LG Stefan
 
Wenn mich meine doch etwas eingerosteten Bash-Kenntnisse nicht trügen hast du keine 5 verschiedenen Variablen deklariert die dann in der for-Schleife nacheinander abgearbeitet werden sondern nur eine einzige die als Inhalt eben "/root /etc /home /var/www /Paketquellen" hat. Das würde bedeuten, daß die Befehlszeile in Zeile 19

#rsync -av --delete /root /etc /home /var/www /Paketquellen /backup

lautet.

Ich schätze mal, was du wolltest war ein Array zu deklarieren das die verschiedenen Verzeichnisse als Inhalt an die for-Schleife übergibt. Ein Array würdest du z.B. so definieren:

SOURCES=('/root' '/etc' '/home' '/var/www' '/Paketquellen')

Die Abarbeitung erfolgt dann indem die Index-Variable von 1 bis 5 durchlaufen wird. Dazu sollte es aber auch haufenweise Dokumentation im Netz geben.

Du kannst meine These auch relativ einfach überprüfen. Sieh einfach nach ob rsync außer dem "/root" Verzeichnis die anderen angegebenen Verzeichnisse gesichert hat.

Du mußt dir aber wahrscheinlich gar nicht den "Stress" mit der Schleife geben. Meines Wissens kann man rsync über exclude auch anweisen bestimmte Verzeichnisse auszulassen.
 
Hallo und danke für deine Antwort,
in meinem tar Archiv, das am Ende erstellt wird sind alle Ordner korrekt enthalten, inkl. Inhalt.
Ich befürchte nur, dass man nicht mal einfach im Betrieb die Dateien kopieren und später wieder einfügen kann :(

Werde mich morgen mal mit "LVM" beschäftigen und schauen was dabei rauskommt.

LG Stefan
 
Du kannst im laufenden Betrieb keine Festplatte mit rsync bzw. dd sichern.

Zieh dir ein Image per Duplicati ;)
 
Danke, das war meine Befürchtung :D

OK dann schaue ich mir das mal an.

LG Stefan
 
Kharne schrieb:
Du kannst im laufenden Betrieb keine Festplatte mit rsync bzw. dd sichern.
Ach? Was genau hindert mich denn am Kopieren via dd im laufenden Betrieb?

Eine im laufenden Betrieb via dd erstellte Kopie mag nicht die Idealform eines leicht zurückzuspielenden Backups sein, aber es ist zweifelsohne eine funktionierende Sicherung.
 
Aus einigen Wikis ist zu entnehmen, das man DD nicht im laufenden Betrieb benutzen soll. Fehler sind nicht auszuschließen. Es wird immer hingewiesen aus ein Live System dieses zu machen.
 
Ist ja auch ganz logisch, warum. Im laufenden Betrieb sind zahlreiche Dateien offen. Wenn die gesichert werden während gerade geschrieben wird, hast du nach der Wiederherstellung eine korrupte Datei. Je nach Inhalt der Datei kann das mehr oder weniger problematisch sein, nur weißt du im voraus nicht, welche Dateien das sein werden. Snapshots vom Dateisystem können etwas helfen, sind aber auch kein Allheilmittel. Eine wirklich gute Lösung gibt es da nicht, nur Datenbanken haben ausgeklügelte Methoden, um konsistente Backups im laufenden Betrieb zu ermöglichen, die sind aber produktspezifisch.

Im übrigen frage ich mich immer, warum eigentlich jeder unbedingt seine eigenen halbgaren Skripte basteln muss? Es gibt so viele gute, freie, ausgetestete, zuverlässige Backupsoftware und die muss gar nicht schwierig zu benutzen sein, z.B. rsnapshot. Ich persönlich würde allerdings lieber gleich zu etwas ausgewachsenem wie Burp oder Borg greifen oder das vorhin erwähnte Duplicati ist sicher auch nicht schlecht.
 
fax668 schrieb:
Im übrigen frage ich mich immer, warum eigentlich jeder unbedingt seine eigenen halbgaren Skripte basteln muss?
Im Fall dieses Threads ist das zu beantworten. Der TE hat das Ziel, eine wirklich kleines Backup hinzubekommen. Seine Ansatz, dafür nicht "dumm" komplett dateiweise vorzugehen, sondern nur die Paketlisten des OS, die Konfiguration und die eigentlichen Daten zu sichern, ist grundsätzlich in Ordnung.

Stefanabg schrieb:
Ich befürchte nur, dass man nicht mal einfach im Betrieb die Dateien kopieren und später wieder einfügen kann :(
Kümmere dich erstmal nur ums Backup. Je nach Art der laufenden Programme ist das durchaus im laufenden Betrieb hinzubekommen. Vielen Serverprogrammen, die Teile ihres Status im Normalbetrieb nur im RAM halten, kann man im Betrieb unmittelbar vorm Backup sagen "schreib mal eben deinen Status auf Platte!" um ein recht frisches "Bild" zu sichern. Es kommt eben drauf an, welche Programme ganz konkret auf dem Rechner laufen. Für alle wichtigen Serverprogramme gibts eine "best practice" fürs backuppen im laufenden Betrieb oder im Zweifelsfall wie man es mit minimaler downtime hinbekommt.

Restore im laufenden Betrieb bekommst du mit vielen Programmen nicht hin. Damit kann man doch leben.
 
Zuletzt bearbeitet:
Zurück
Oben