fsarchiver

All posts tagged fsarchiver

Ja ich weiss, das Thema ist unendlich breitgetreten. Aber ich habe mich jetzt schon so oft geärgert,dass das Restore nicht funktioniert, wenn man es denn dringend braucht, dass ich jetzt diesen kleinen Artikel schreibe, wie ich das Problem angegangen bin. Denn die goldene Grundregel beim Backup lautet: Ein Backup ohne funktionierendes Restore ist kein Backup ! Gefunden habe ich dann nach langem Suchen ein Script von Jondalar aus dem VDR-Portal, welcher mittels fsarchiver eine vollständige Sicherung des Filesystems macht. (1)

Schon mal nicht schlecht – außer man möchte wie ich eine einzelne Datei wiederhaben, denn der Parameter savefs sichert das ganze Filesystem mit der Partition und möchte daher auch eine neue Partition schreiben. (Und sowas merkt man dann beim Restore – Argh !) Also ein vollständiges Backup (Parameter savefs) mit einer kleinen, separaten Ordnersicherung (Parameter savedir).

 
Bitte betrachtet die folgenden Codesegmente als Beispiel und nicht als vollständig funktionierendes Backup – ihr müsst die Pfade auf eurem System anpassen. Beim exclude Parameter -e habe ich z.B. Pfade drinstehen, welche es auf eurem System nicht geben wird usw.. Nehmt es als Gerüst, passt es euch an und vor allem: Probiert bitte das Restore aus !
Hier meine abgewandelte Variante, welche auch noch das /etc und /script Verzeichnis separat abspeichert:

Backupscript

#!/bin/bash
# Backupscript by Jondalar extended by dreadnet

# Variablen
BWEEKDAY=`date +%w`
BPATH="/mnt/btsync-mabu/backup"
BSOURCEFS="/dev/sda1"

#limit cpu usage server will still run smoothly
cpulimit -P /usr/sbin/fsarchiver -l 20 &

`ionice -c 2 fsarchiver savefs $BPATH/jarvis_backup_tag_$BWEEKDAY $BSOURCEFS -A -a -o -v -e /srv/vdr/video.00 -e /tmp -e /proc -e /dev -e /mnt -e /nas -e /synch -e /medialib -e /btsync`

# Save iportant folders separately
fsarchiver savedir $BPATH/jarvis_backup_ETC_tag_$BWEEKDAY /etc -A -a -o -v -z 8
fsarchiver savedir $BPATH/jarvis_backup_SCRIPT_tag_$BWEEKDAY /script -A -a -o -v -z 8

#Save Apt Packages config separately
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > $BPATH/jarvis_packages.list_$BWEEKDAY
apt-mark showauto > $BPATH/package-states-auto_$BWEEKDAY
apt-mark showmanual > $BPATH/package-states-manual_$BWEEKDAY
cp /etc/apt/trusted.gpg $BPATH/trusted-keys.gpg_$BWEEKDAY

Zu guter Letzt und als Worst-Case-Szenario sichere ich noch die aktuellen Paketinforationen. So Könnte man aus den Konfigurationsdateien aus /etc und diesen Infos das Komplette System mit ein wenig mehr Aufwand wiederherstellen. Ausfürlich beschrieben auf: (2)

Vollständiges Restore
Bei einem vollständigen Restore dann eine neue Platte nehmen, Partitionieren und mittels Live System das Archiv wieder zurückschreiben lassen (Pfade und Sicherungs-Tag natürlich vorher anpassen!):
fsarchiver restfs /mnt/btsync-mabu/jarvis_backup_tag_XXX.fsa id=0,dest=/dev/sda1

/proc und /dev einfach nur anlegen
Neu booten und glücklich sein.

Partielles Restore
Möchte man z.B. nur das /etc verzeichnis oder einen Teil davon wiederherstellen geht das via
fsarchiver restdir /$BPATH/jarvis_backup_ETC_tag_XX.fsa /tmp/extract (nie direkt zurücksichern)

Fazit
Funktioniert einfach und lässt sich im Notfall schnell wiederherstellen. Hoffentlich brauche ich es nie wieder…
Wer sich das ganze genauer anschauen möchte, sollte sich die Doku zu fsarchiver anschauen (3).

Quellen:
(1) http://www.vdr-portal.de/board16-video-disk-recorder/board99-distributionen/board96-yavdr/p992287-backup-iso-erstellen/
(2) http://wiki.ubuntuusers.de/Paketverwaltung/Tipps
(3) http://www.fsarchiver.org/QuickStart