Da ich die Backup Files so von Cronjob nicht löschen lasse, sammelt sich da mit jedem Tag eine neue File und so hab ich eine große Auswahl (passiert ja leider sehr oft das man üble Fehler erst viel zu spät findet, also wollte ich auch ein Backup was sich über eine lange Zeit zurückverfolgen lässt).
Meinen Portage Tree hab ich ganz simpel per Simlink auf die Extra Partition geleitet, so brauche ich den nicht noch Extra sichern bei nem Backup und kann direkt von dort die Packete mit den Versionen beziehen wie sie beim Stand des Systemzerfalls schon drauf waren, so kann ich also auch direkt die bis dahin verwendeten Configs direkt rüberkopieren (sofern das System damit nicht geschreddert wurde
In meinem Falle lasse ich alles nach:
/serverhdd/backup/portage (hier liegen die ganzen Config Files Extra von /etc/portage & das Worldfile)
/serverhdd/backup/portage/tree (hierhin ist der Portage-Tree ausgelagert)
/serverhdd/backup/system (hier liegt sowohl jeweils ein .tar vom ganzen /etc Baum und Co, und nochmal eine File mit einer Sicherung vom ganzen System)
Wieoft eine neue File mit Datum und Co erstellt wird hängt vom Cronjob ab.
Hier der Cronjob:
Code: Select all
######## File Backup & misc ########
0 0 1 1-12 * sh /serverhdd/backup/system.sh
1 12 * * * sh /serverhdd/backup/config.sh
35 18 * * * sh /serverhdd/backup/portage.sh
Ein volles System Backup lasse ich 1mal im Monat machen, jede File ist mit dem Datum an dem es erstellt wurde im Filename bezeichnet so hat man direkt einen guten Überblick z.b sieht die Semantik der Files so aus:
/serverhdd/backup/portage/etc-portage-2007-07-01.tbz2
/serverhdd/backup/portage/world-2007-07-01.tbz2
/serverhdd/backup/system/config-backup-2007-07-01.tbz2
/serverhdd/backup/system/System-backup-2007-07-01.tbz2
Wer natürlich nicht soviel Space hat kann auch das komplette System Backup weglassen, dann sind das keine 300MB dauersicherung wie man da macht.
Durch die einzelnen Sicherungen habe ich einen großen Handlungsspielraum WAS ich genau wiederherstellen will, zb.b das komplette System? Oder dorch nur das Worldfile? oder nur die Configs?
Als ich damals den Stage4 Artikel auf Gentoo Wiki gelesen habe, war er mir zu eingeschränkt in seinem Spielraum und nicht effektiv genug, so habe ich das nun gelöst.
Dazu eben der dahin ausgelagerte Portage Tree der dafür sorgt das das neue System damit installiert wird und so auf demselben Versionsstand ist wie das System von dem die Backups kommen (sofern es das letzte Backup ist was man nutzt).
Auf dieser Basis kann man natürlich noch zich Möglichkeiten einbauen wie man sowas gerne haben würde
Hier nun noch die Bash Scripte die mit dem oben beschriebenem Cronjob aufgerufen werden, beachtet bitte das die ganzen --exclude lines alle hintereinander stehen müssen sie stehen hier nur alle untereinander der besseren Formatierung wegen.
config.sh
Code: Select all
#!/bin/sh
# Aktuelles Datum fuer Dateinamen setzen
DATUM=`/bin/date '+%Y-%m-%d'`
/bin/tar -cvjpf /serverhdd/backup/system/config-backup-$DATUM.tbz2 / --exclude=bin --exclude=dev --exclude=lost+found --exclude=home/sourcecode/.aMule/Temp --exclude=opt --exclude=root --exclude=serverhdd --exclude=tmp --exclude=var --exclude=lib --exclude=mnt --exclude=proc --exclude=sbin --exclude=sys --exclude=usrCode: Select all
#!/bin/sh
# Aktuelles Datum fuer Dateinamen setzen
DATUM=`/bin/date '+%Y-%m-%d'`
/bin/tar -cvjpf /serverhdd/backup/portage/etc-portage-$DATUM.tbz2 /etc/portage
#copy worldfile
/bin/cp /var/lib/portage/world /serverhdd/backup/portage/world-$DATUMCode: Select all
#!/bin/sh
# Aktuelles Datum & Zeit fuer Dateinamen setzen
DATUM=`/bin/date '+%Y-%m-%d'`
/bin/tar -cvjpf /serverhdd/backup/system/system-backup-$DATUM.tbz2 / --exclude=dev --exclude=sys --exclude=proc --exclude=var/tmp --exclude=usr/portage/distfiles --exclude=usr/portage/packages --exclude=serverhddChristian
