Backup Desktopsystem

eanneser

Well-Known Member
Hallo,

wieder eine dumme Frage:
Wie macht Ihr sowas wie ein Backup von Euren FreeBSD-Desktopsystemen?
Ich meine jetzt nicht ein Backup der Daten oder ein Backup eines Serversystems, sondern ein Backup aller Einstellungen, *rc-Dateien, config-Dateien usw.
Ich stelle mir jetzt die Situation vor, dass meine Platte im Laptop den Geist aufgibt, und ich die (noch sehr mühevoll hingepfriemelte) Konfiguration wieder machen müsste.
Ein komplettes Image von der HDD zu ziehen finde ich da nicht so hilfreich, weil sich ja immer wieder mal was ändert und man dann jedesmal ein neues Image ziehen müsste.
Bisher (Debian) war ich im Stande ein komplett neues Desktop-System innerhalb von ein paar Stunden hochzuziehen, weil ich das System recht gut kannte und über eine aktuelle Sicherung von "."files verfüge.
Bei meinem neuen BSD müsste ich vermutlich wieder ein paar Tage rechnen ...

Danke
Edgar
 
Ich sichere auf meinem Server ebenfalls /etc und /usr/local/etc habe dafür duply im Einsatz, verschlüsselt die Dateien per gpg und lädt sie wahlweise über sftp oder diverse andere Schnittstellen z.B. zu Amazon S3, Dropbox und Co hoch. --> http://duply.net/
 
Ich erstelle eine 1:1 Kopie des kompletten Systems mit 'zfs send' auf eine externe Festplatte. Die wichtigsten Daten werden außerdem in eine Zweitkopie gesichert.
 
Backups mache ich mit meinem Backupscript https://github.com/rakor/backupscript
Das sichert je nach Notwendigkeit mit dump oder tar und kann bei Bedarf (auf dem Server) den ganzen Kram per OpenSSL verschlüsseln.

Gesichert wird nach Bedarf, aber für deine Notwendigkeit sollten /etc, /usr/local/etc und /home genügen. Du solltest aber auch daran denken Datenbanken zu dumpen und den dump weg zuspeichern solltest du Wert auf deren Inhalt legen.
 
Das sind ja schon mal eine Menge Tipps, Merci.

Was ich dann noch brauche:
Wenn ich mit "pkg backup -d paketliste" eine Datei mit meinen installierten Paketen erzeuge, kann ich dann mit "pkg backup -s paketliste" alle auf meinem System installierten Softwarepakete wieder installieren? (Das heisst, wenn ich die Datei "paketliste" sichere, wäre das schon 'mal recht einfach).
Und: gibt's was vergleichbares auch für Ports (bzw. aus Ports installierte Software)?

Edgar
 
Wenn deine Abhängigkeiten stimmen kannst du mit dem folgenden Befehl deine Pakete anzeigen die du installiert hast (ohne Abhängigkeiten):
pkg query -e %a=0 %o > Paketdatei.txt

Das ganze wird dann gleich in die Datei geschrieben.

Wieder installieren kannst du die dann mit
pkg install `cat Paketdatei.txt"

Alles Abhängigkeiten werden aufgelöst und mit installiert.

Wenn du portmaster für die Ports verwendest steht relativ am Ende ein Beispiel für das komplette wegsichern und neu installieren:

Using portmaster to do a complete reinstallation of all your ports:
1. portmaster --list-origins > ~/installed-port-list
2. Update your ports tree
3. portmaster -ty --clean-distfiles
4. portmaster --check-port-dbdir
5. portmaster -Faf
6. pkg_delete -a
7. rm -rf /usr/local/lib/compat/pkg
8. Back up any files in /usr/local you wish to save,
such as configuration files in /usr/local/etc
9. Manually check /usr/local and /var/db/pkg
to make sure that they are really empty
10. Re-install portmaster
11. portmaster `cat ~/installed-port-list`
 
Wenn ich mit "pkg backup -d paketliste" eine Datei mit meinen installierten Paketen erzeuge, kann ich dann mit "pkg backup -s paketliste" alle auf meinem System installierten Softwarepakete wieder installieren? (Das heisst, wenn ich die Datei "paketliste" sichere, wäre das schon 'mal recht einfach).
Und: gibt's was vergleichbares auch für Ports (bzw. aus Ports installierte Software)?
Üblicherweise enden Deine Ports (z.B. per portmaster installiert) als Packages, die beim pkg backup nicht zu unterscheiden sind von denen aus einem externen Repository. Das heißt, dass ein Rückspielen von pkg backup möglicherweise nicht alle Pakete wieder installiert, sondern nur die, die für pkg erreichbar sind, z.B. im offiziellen FreeBSD-Repository, wenn Du das so eingestellt hast. Dann müsstest Du die aus den Ports stammenden noch nachbauen. Schwierig wird es nur, wenn Du aus den Ports etwas gebaut hast, was auch auch als Standard-Packages gibt - das kann pkg noch nicht unterscheiden.

Was ich noch zusätzliche sichere - und was Dir helfen könnte, Software zu identifizieren, die Du aus den Ports installiert hast, die aber nicht im FreeBSD-Repo vorkommen:
/usr/sbin/pkg info -aq > /irgend/ein/pfad/pkg_liste.txt

Nach dem Rückspielen von pkg backup könntest Du dann denselben Befehl ausführen und vorher/nachher diffen. Dann wüsstest Du, welche Packages vorher installiert waren aber nicht nachher (wenn Zeit zwischen dem letzten pkg upgrade verstrichen ist, bekommst Du natürlich auch alle abweichenden Versionen gezeigt).

Weitere interessante Dinge zum Sichern:
/boot/loader.conf

Außerdem habe ich in meinem Backup-Skript die Ausgabe von gpart show drin, damit ich später immer weiß, wie die Festplatte partitioniert war.
/sbin/gpart show >/irgend/ein/pfad/gpart-show.txt

Ansonsten musst Du überlegen, was Du sonst noch so auf dem Rechner machst. Wenn Du z.B. Web-Development machst, hast Du vielleicht wichtige Dateien irgendwo unter /usr/local/www/apacheXXX/data liegen. Oder wenn Du bestimmte Dinge in Jails gemacht hast, dann willst Du dort vielleicht ebenfalls etwas sichern...
 
Using portmaster to do a complete reinstallation of all your ports:
1. portmaster --list-origins > ~/installed-port-list

Achtung: Auch portmaster kann hier nicht unterscheiden, woher ein Paket stammt - es KANN von Dir aus den Ports gebaut worden sein, es zeigt aber einfach alle über pkg installierte Pakete. Dieses Vorgehen würde ALLE Deine installierten Pakete aus den Ports neu bauen!
 
Ich mache auch vollständige ZFS-Kopien per "zfs send" monatlich und täglich das gleiche inkrementell, um die CPU-, IO- und Netzwerk-Last zu reduzieren.
 
Achtung: Auch portmaster kann hier nicht unterscheiden, woher ein Paket stammt - es KANN von Dir aus den Ports gebaut worden sein, es zeigt aber einfach alle über pkg installierte Pakete. Dieses Vorgehen würde ALLE Deine installierten Pakete aus den Ports neu bauen!
Achso, ja... Ich dachte das wäre klar.
 
Da ich noch UFS verwende und als Backup System ein Synology NAS in Betrieb ist verwende ich den "alten LifePreserver". Also den vor der Unterstützung von ZFS. (von PC-BSD geklaut :)).
Der setzt auf rsync mit hardlinks auf und hat noch ein paar grafische Annehmlichkeiten.

[edit]
Alle paar Monate erstelle ich noch ein Backup von den unersetzbaren Daten auf einem externen Datenträger. Also Fotos, Videos usw.
[/edit]
 
Ich hätte bei rsync, tar und solchen Sachen eher die Sorge, dass sie zu wenig Dateisystemmetadaten mitspeichern und eventuell zu doof sind für manche Situationen, wie Lochdateien und die Originalzeitstempel etc. Vor allem ist das auch ziemlich lahm, Dateien einzeln durchzukramen.

Bei Backups mit Hardlinks habe ich die Angst, dass das eigentlich kein Backup ist. Ändert sich die Datei, ändert sich das Backup mit. Es ist also direkt ein Datenverlust mit einfachen Mitteln konstruiert.
 
Also für den privaten gebrauch sicher ich mein /home oder auf meinen Windows-Kisten die "Eigenene Dateien" (Oder halt die entsprechend neumodische Entsprechung selbiger) sowie halt ggf. unter Windows noch evtl. Mailfiles e.t.c. vom %appdata% per rsync auf meinen "NAS" rechner per SSH. Rsync erscheint mir dabei mit das stabilste Protokoll.

Das "NAS" sicher ich dann ab-und-an auf eine externe USB-Platte die ich ausserhäusig einlager.

Das Betriebsystem selber sicher ich nicht, ich bemühe mich da einfach alles möglichst vanilla zu lassen, so das nach einer neuinstalaltion alles wieder so funktioniert wie es soll.

Vom NAS sicher ich noch z.B. die samba-configuration oder unter windows ein paar ausgewählte Programme.
 
Ich hätte bei rsync, tar und solchen Sachen eher die Sorge, dass sie zu wenig Dateisystemmetadaten mitspeichern und eventuell zu doof sind für manche Situationen, wie Lochdateien und die Originalzeitstempel etc. Vor allem ist das auch ziemlich lahm, Dateien einzeln durchzukramen.

Dafür packe ich die Verzeichnisse in handliche tar.gz und schubse die dann einfach durch die Gegend. Das geht auch zeitversetzt. Mittags alles einpacken und in ein Verzeichnis legen und dann nachts den ganzen Kram irgendwo durchs Netz schieben.

AMANDA macht eigentlich auch nicht großartig was anderes.
 
Bei Backups mit Hardlinks habe ich die Angst, dass das eigentlich kein Backup ist. Ändert sich die Datei, ändert sich das Backup mit. Es ist also direkt ein Datenverlust mit einfachen Mitteln konstruiert

Ändert sich die Datei, wird eine Kopie der neuen Version angelegt und die alte Version wird auch beibehalten, nur wenn sich die Datei nicht ändert wird ein Hardlink erstellt. Somit hat man eine "History" bei moderatem Speicherplatzbedarf.
 
Also, Hardlinks sollte man nur wählen, wenn man weiß was man tut. Wenn man das erzeugte Backup mit der Modifikation der Originaldatei verliert, dann ist das kein Backup.

Code:
% echo "aaa" > file001
% ln file001 link001
% cat link001
aaa
% echo "bbb" >> file001
% cat link001
aaa
bbb

Außerdem... Backups auf der gleichen Partition wie die Daten selbst, ist schon recht "billiges" Backup. Also etwas mehr sind mir meine Daten schon wert (separate Kiste wo die Daten hingeschaufelt werden).
 
1. Wie ich weiter oben schon geschrieben habe sichere ich meine Daten auf einem (örtlich entfernten) Synology NAS.
2.
Code:
man rsync
:)
 
Da müßte ich zuerst mal die Daten auf dem Desktoprechner verschlüsseln. Nicht zu vergessen die Fotos auf der Digitalkamera (geht das überhaupt) und auf dem Telefon. Und Dokumente müssen in einen Panzerschrank gelegt werden. :)

Aber eigentlich hast du ja recht. Vorsorgen ist immer besser ist als hinterher jammern.
 
Ich glaube ich erinnere mich jetzt an das Verfahren mit rsync. Du meinst das die Hardlinks nur zwischen Archiven erstellt werden aber nicht auf die Originalquelle hinzeigend. Das ist quasi eine ziemlich ärmliche Simulation von Backup-Leveln. Ich brauche rsync nicht, es ist zu kompliziert zu bedienen und sichert nicht das Dateisystem, sondern nur die Dateien darauf. Das ist weit von meiner Vorstellung entfernt wie eine Sicherung funktionieren sollte.

zfs send (oder dumps) kann man wunderbar komprimieren und mit gnupg verschlüsseln (nicht vergessen den Keyring separat mitzusichern!). Bei meinem $HOME, das auf PEFS-auf-ZFS basiert ist das zfs-send-Backup schon verschlüsselt und es muss auch nicht fürs Backup erst entschlüsselt werden. Komprimieren geht da natürlich dann auch nicht, dafür funktionieren wenigstens Backup-Level.
 
Zurück
Oben