ACHTUNG! Für eine aktuellere Version dieses Artikels schaut bitte ins WIKI
http://wiki.bsdforen.de/tiki-index.php?page=Backup
Ich hab eine kleines Skript geschrieben um den Dump-Prozess
(der ja regelmäßig passieren sollte) etwas zu vereinfachen und zu automatisieren. Die Strategie besteht aus 3 Teilen.
Folgendes muss aber vorweg gesagt werden:
Passt das Skript an eure bedürfnisse an! Es ist nich copy'n'dump
Das Dump lebt von folgender Reihenfolge
- am 1. eines Monats läuft ein level 0 dump
(Ein komplettes Backup des Systems)
- es folgen darauf bis zum nächsten Samstag jeden Tag Level 2 Dumps
(Diese Level sichert alles was sich seit dem letzten dump geändert hat)
- Am ersten Sonntag folgt dann ein Level 1 Dump
(Dieser dump sichert alles was sich seit letzen Level 0 dump geändert hat)
- Darauf die 6 Tage folgen wieder die täglichen Level 2 dumps
(Die sichern wieder alles was sich seit dem letzen Level 1 dump geändert hat)
- usw.
nochmal in der Monatsübersicht:
0 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2
Damit ist sichergestellt das wenn am vorletzen Tag eines Monats die Platte zerreißt, wir NICHT alle dumps nacheinander einspielen müssen.
Es reicht dann nacheinander zuerst der 0, dann der letzte 1 und dann der letzte 2 vor dem Crash. Kapiert?
Das spart zeit und vor allem Plattenplatz
Hier die Skripte
Level 0
Level 1
Level 2
So, gestern hatte ich mein letztes Backup und heute raucht mein Mailserver ab
ABER: ich hatte ja ein Backup
So hab ichs nun gemacht:
http://wiki.bsdforen.de/tiki-index.php?page=Backup
Ich hab eine kleines Skript geschrieben um den Dump-Prozess
(der ja regelmäßig passieren sollte) etwas zu vereinfachen und zu automatisieren. Die Strategie besteht aus 3 Teilen.
Folgendes muss aber vorweg gesagt werden:
Passt das Skript an eure bedürfnisse an! Es ist nich copy'n'dump
Das Dump lebt von folgender Reihenfolge
- am 1. eines Monats läuft ein level 0 dump
(Ein komplettes Backup des Systems)
- es folgen darauf bis zum nächsten Samstag jeden Tag Level 2 Dumps
(Diese Level sichert alles was sich seit dem letzten dump geändert hat)
- Am ersten Sonntag folgt dann ein Level 1 Dump
(Dieser dump sichert alles was sich seit letzen Level 0 dump geändert hat)
- Darauf die 6 Tage folgen wieder die täglichen Level 2 dumps
(Die sichern wieder alles was sich seit dem letzen Level 1 dump geändert hat)
- usw.
nochmal in der Monatsübersicht:
0 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2
Damit ist sichergestellt das wenn am vorletzen Tag eines Monats die Platte zerreißt, wir NICHT alle dumps nacheinander einspielen müssen.
Es reicht dann nacheinander zuerst der 0, dann der letzte 1 und dann der letzte 2 vor dem Crash. Kapiert?
Das spart zeit und vor allem Plattenplatz
Hier die Skripte
Level 0
Code:
#!/bin/sh
dump=/sbin/dump
chflags=/bin/chflags
dt=`date +%Y%m%d`
destpath=/mnt/raid5-2/backup/file
lvl=0
# /
src1=/dev/ad0s1a
# /var
src2=/dev/ad0s1d
# /usr
src3=/dev/ad0s1f
dest1=$destpath/root_ad0s1a_l0_$dt.gz
dest2=$destpath/var_ad0s1d_l0_$dt.gz
dest3=$destpath/usr_ad0s1f_l0_$dt.gz
# Ausnahmen NO BACKUP
$chflags -R nodump /usr/ports/
$chflags -R nodump /usr/src/
$chflags -R nodump /usr/obj/
# Fullbackup Level 0 Monatlich
$dump -$lvl -h 0 -Lauf - $src1 | gzip -2 | dd of=$dest1
$dump -$lvl -h 0 -Lauf - $src2 | gzip -2 | dd of=$dest2
$dump -$lvl -h 0 -Lauf - $src3 | gzip -2 | dd of=$dest3
Level 1
Code:
#!/bin/sh
dump=/sbin/dump
chflags=/bin/chflags
dt=`date +%Y%m%d`
destpath=/mnt/raid5-2/backup/file
lvl=1
# /
src1=/dev/ad0s1a
# /var
src2=/dev/ad0s1d
# /usr
src3=/dev/ad0s1f
dest1=$destpath/root_ad0s1a_l1_$dt.gz
dest2=$destpath/var_ad0s1d_l1_$dt.gz
dest3=$destpath/usr_ad0s1f_l1_$dt.gz
# Ausnahmen NO BACKUP
$chflags -R nodump /usr/ports/
$chflags -R nodump /usr/src/
$chflags -R nodump /usr/obj/
# Fullbackup Level 0 Monatlich
$dump -$lvl -h 0 -Lauf - $src1 | gzip -2 | dd of=$dest1
$dump -$lvl -h 0 -Lauf - $src2 | gzip -2 | dd of=$dest2
$dump -$lvl -h 0 -Lauf - $src3 | gzip -2 | dd of=$dest3
Level 2
Code:
#!/bin/sh
dump=/sbin/dump
chflags=/bin/chflags
dt=`date +%Y%m%d`
destpath=/mnt/raid5-2/backup/file
lvl=2
# /
src1=/dev/ad0s1a
# /var
src2=/dev/ad0s1d
# /usr
src3=/dev/ad0s1f
dest1=$destpath/root_ad0s1a_l2_$dt.gz
dest2=$destpath/var_ad0s1d_l2_$dt.gz
dest3=$destpath/usr_ad0s1f_l2_$dt.gz
# Ausnahmen NO BACKUP
$chflags -R nodump /usr/ports/
$chflags -R nodump /usr/src/
$chflags -R nodump /usr/obj/
# Fullbackup Level 2 Täglich
$dump -$lvl -h 0 -Lauf - $src1 | gzip -2 | dd of=$dest1
$dump -$lvl -h 0 -Lauf - $src2 | gzip -2 | dd of=$dest2
$dump -$lvl -h 0 -Lauf - $src3 | gzip -2 | dd of=$dest3
So, gestern hatte ich mein letztes Backup und heute raucht mein Mailserver ab
ABER: ich hatte ja ein Backup
So hab ichs nun gemacht:
- Neue Platte in meine Workstation eingebaut.
- Per sysinstall partitioniert (fdisk) und exakt wie die alte platte vom mailserver partitioniert (label). Beim mountin darauf achten das die nich mit dem vorhandenen mounts kollidieren. Ich hab die neue Platte einfach in /mnt/ad2/ abgebildet:
/mnt/ad2/root/
/mnt/ad2/var/
/mnt/ad2/tmp/
/mnt/ad2/usr/ - Die benötigten dumps ins eigene home kopieren und per gzip -d entpacken.
Sieht dann ungefähr so aus:
Code:-rw-r--r-- 1 root staff 54702080 24 Okt 19:34 root_ad0s1a_20041024 -rw-r--r-- 1 root staff 61440 3 Nov 20:23 root_ad0s1a_l2_20041103 -rw-r--r-- 1 root staff 563763200 24 Okt 19:46 usr_ad0s1f_20041024 -rw-r--r-- 1 root staff 4014080 3 Nov 20:24 usr_ad0s1f_l2_20041103 -rw-r--r-- 1 root staff 566609920 24 Okt 19:40 var_ad0s1d_20041024 -rw-r--r-- 1 root staff 31631360 3 Nov 20:23 var_ad0s1d_l2_20041103
- Nun in z.B. /mnt/ad2/root wechseln und mit
Code:restore -rf /home/marcel/root_ad0s1a_20041024
- Da das so einfach war schieb ich noch mein letzes Level 2 dump hinterher
Code:restore -rf /home/marcel/root_ad0s1a_l2_20041103
- Dies mit allen anderen in usr und var wiederholen.
- Wenn fertig, löscht die Datei "restoresymtable" je aus den Verzeichnissen raus.
Die werden nun nicht mehr benötigt und belegen einfach nur Platz. - Jetzt Festplatte ausbauen und in den alten Rechner einbauen, booten, fertig
Zuletzt bearbeitet: