Seite 1 von 1

Backup unter Linux mit tar

Verfasst: Do 01 Mär, 2007 14:50
von Captain
Hi,

ich mach gerade ein Backup unter Linux mit tar. Dazu verwende ich folgende Anweisung:

Code: Alles auswählen

tar -pcvzf /backup/backup.tar.gz /bin /boot /etc /home /lib /opt /root /sbin /usr /var /emul
Das sollte doch eigentlich alles abdecken, oder ? Bei einem größeren Unfall müßte es doch dann reichen mit Rescue System hochzufahren bzw. ein neues System zu installieren und dann das File zu entpacken !? Right?

Ich hab gelesen, dass ich dann noch einen neuen MBR (Master Boot Record) definieren muss!? Stimmt das ? Doch nur bei einer neuen Platte oder ? Und wenn ja, wie geht das? Das Ganze müßte ich theoretisch doch auch an einer anderen Maschine wieder einspielen können, dann kann ich es mal testen!?

Grüße
KK

Verfasst: Sa 03 Mär, 2007 00:24
von Captain
Ich habs jetzt noch ein bisschen erweitert und ein Skript dazu gebaut, aber ich hätte gerne eure Meinung dazu. Vor allem Acid wenn er was dazu sagen könnte obs so taugt wäre geil:

Monatliches Backup (komplettes System):

Code: Alles auswählen

#!/bin/sh
# Aktuelles Datum für Dateinamen setzen
DATUM=`/bin/date '+%Y-%m-%d'`
# Backup mit TAR
tar -pcvzf /backup/system/system_$DATUM.tar.gz /bin /boot /etc /home /lib /opt /root /sbin /usr /var /emul --exclude="/var/log/*"
Tägliches Backup (Files und DB):

Code: Alles auswählen

#!/bin/sh
# Aktuelles Datum für Dateinamen setzen
DATUM=`/bin/date '+%Y-%m-%d'`
# Backup mit TAR
tar -pcvzf /backup/var/var_$DATUM.tar.gz /var --exclude="/var/log/*"
Die Files werden auf die 2. Platte "sdb" in die Partition "sdb1" gelegt.

Grüße
KK

Verfasst: So 04 Mär, 2007 21:31
von acid
Das sollte doch eigentlich alles abdecken, oder ? Bei einem größeren Unfall müßte es doch dann reichen mit Rescue System hochzufahren bzw. ein neues System zu installieren und dann das File zu entpacken !? Right?
Jepp, sollte so funktionieren.
Ich hab gelesen, dass ich dann noch einen neuen MBR (Master Boot Record) definieren muss!? Stimmt das ? Doch nur bei einer neuen Platte oder ? Und wenn ja, wie geht das? Das Ganze müßte ich theoretisch doch auch an einer anderen Maschine wieder einspielen können, dann kann ich es mal testen!?
Nope. Der MBR muß (wenn du Grub als Bootloader verwendest) nicht neu geschrieben werden. Zur Not kann man nach dem Überschreiben der Config (in /boot/grub oder so) grub-install oder ähnlich aufrufen. Bei Debian sollte das auch mit dpkg-reconfigure grub funktionieren.

Die Backups sind von daher kein Problem. Wenn du mit diesem Script weiterarbeiten möchtest gibt es wenig zu verbessern. Unter anderem währe es noch möglich, E-Mail notifications zu schicken mit Abschlußstatus, vielleicht eine Logdatei etc...

Ansonsten würde ich dir in diesem Fall flexbackup (apt-get install flexbackup) ans Herz legen. Über die Datei flexbackup.conf in /etc können mehrere Sicherungssets und Devices definiert werden. Flexbackup ist dabei nur ein Frontend für die Verwendung verschiedenster Sicherungsprogramme (z.B. tar, star, gzip, etc), mit dem aber auch inkrementelle und differentielle Backups möglich sind. Ausserdem ist es einfacher

SET{'web'} = "/var/www /var/lib/mysql";
in der Conf und mit
flexbackup -set web sichern. oder per flexbackup -set web incremental eine inkrementelle Sicherung anlegen. Die Möglichkeiten sind vielfälgit, schau es dir einfach mal an.

Verfasst: Mo 19 Mär, 2007 13:09
von Captain
Vielen Dank, das sind sehr gute Tips. Werde mir das flexbackup mal auf einer Testmaschine ansehen, denn ich kenne das noch gar nicht *schäm*, aber ich bin ja auch kein Crack wie du *schleim* ;)

Ne, im Ernst: Danke.

PS: Hättest du nicht Lust uns mit deiner Fantasie bei Doomsday zu unterstützen ? Ich habe einen Großteil deiner Visionen bzgl. Rassen und Klassen aufgenommen, weil sie einfach klasse sind. Wenn du mal mehr Zeit hast kannste ja mal reinspickeln

Greetz
KK

Verfasst: Mo 19 Mär, 2007 22:17
von acid
Lust hätte ich schon. Werds mir auf jeden Fall mal wieder anschauen. Allerdings bin ich im Moment zeitlich (mal wieder!) extrem beschränkt. Momentan ist eine 50 bis 60 - Stundenwoche so ungefähr standard. Und so langsam zehrt das :) (kannst du dir ja sicher vorstellen, bist ja auch ITler )

Verfasst: Mo 19 Mär, 2007 22:51
von Captain
Ich weiß. Das soll auch ganz locker ablaufen, kein Zwang oder so. Trotzdem fände ich es gut, wenn du mit von der Partie bist, weil du damals bei Beginn der Aktion sehr aktiv warst und einige deiner Ideen und Charaktere (zumindest soweit wie bisher möglich) eingeflossen sind.

Auch wenn ich nicht versprechen kann dass es jede Idee bis in die fertige Version schafft fände ich deine Meinung dennoch sehr interessant ;)

PS: Und das mit dem Stress kenn ich. Du weiß ja sicher was eine Netzhautablösung ist ;)

Verfasst: Mo 11 Jun, 2007 18:02
von acid
Hier übrigens ein schöner Weg, um alle Datenbanken gleichzeitig zu dumpen. Benötigt wird in diesem Fall nur das Tool tree (apt-get install tree), weil es sich in diesem Fall flexibler verhält als ls. Wird von mir in dieser Art auf einigen Servern eingesetzt und ist echt schön, wenn man es über Cron laufen hat und mal schnell ne Datenbank zurückspielen möchte:

PS: BU_PATH sollte entsprechend angepasst werden :)

Code: Alles auswählen

#!/bin/sh

BU_PATH=/mein/glücklicher/Backup/Pfad
counter=0

echo Datenbanken werden gedumpt...
mv $BU_PATH/*.sql $BU_PATH/old/

# Die if-Abfrage unten exkludiert /var/lib/mysql, den ersten hit bei der Abfrage.
# Wär sonst etwas blöd...

for i in `tree -id --noreport /var/lib/mysql/`; do

        if [ $i != "/var/lib/mysql/"  ]; then
                `which mysqldump` -uroot -pMEINPW $i > $BU_PATH/$i.sql
                let "counter += 1"
        fi

done

echo $counter Datenbanken wurden gedumpt...

Viel Spaß damit

EDIT: Und weils so viel Spaß macht hier noch der umgekehrte Weg: Hier werden alle obenstehenden Datenbanken wieder zurückgedumpt:

Code: Alles auswählen

#!/bin/sh

BU_PATH=/mein/glücklicher/Backup/Pfad
counter=0

echo Datenbanken werden gedumpt...

for i in `ls $BU_PATH`; do

    DB=`ls $i |cut -f1 -d "."`

    mysql -uroot -pMeinPW $DB < $BU_PATH/$i
    let "counter += 1"

done

echo $counter Datenbanken wurden gedumpt...

Verfasst: Mi 13 Jun, 2007 17:35
von snaggy
BU_PATH=/mein/glücklicher/Backup/Pfad
Wie süß ;)

Verfasst: Mi 13 Jun, 2007 17:57
von acid
Jaa, ich liebe meine Pfade.. So weiß jedenfalls jeder, was gemeint ist :)

Verfasst: Do 14 Jun, 2007 10:11
von Captain
Ey, coole Sache acid. Werd das die nächsten Tage mal für mich ausprobieren, denn bisher archiviere ich einfach die kompletten Datenbankfiles inkl. allem Drum und Dran.

BTW: Ich hab da gerade noch ein anderes Linux-Problem und werde das wohl demnächst hier mal posten. Vielleicht hast du ja ne Idee...

Verfasst: Do 14 Jun, 2007 13:45
von acid
Hoi,

frag ruhig, dafür simma ja ein Forum, wa? :)

Die Möglichkeit, die einzelnen Verzeichnisse zu packen ist auch möglich. Allerdings hat die dump-Methode einen entscheidenden Vorteil: Wenn die Struktur deiner DB weg ist, musst du alle Tabellen per Hand alegen, weil du nur die Daten drinstehen hast (also keine create table Statements etc). Der Dump hat hier weitreichende Möglichkeiten (Standard ist drop table if exists BLA; create bla...).

Ist also um einiges leichter, solche Dumps auf andere Systeme oder leere Datenbanken zu migireren :)

Verfasst: Mi 20 Jun, 2007 23:48
von acid
Und hast dus schon mal angetestst? Bei mir funktioniert das ganze wunderbar, hab es auf etlichen Servern im Einstaz...

PS: Unter http://www.weblogixx.de/category/shellscripts/ gibts bald ne kleine Sammlung interessanter Tools für den Einsatz auf Linux-Servern (Momentan sind hier nur die beiden SQL-Scripte vorhanden, kommen aber noch ein paar andere kleine nach).

Verfasst: Sa 03 Nov, 2007 01:49
von Captain
Hab das Skript nun im Einsatz. Musste erst noch Tree installieren aber jetzt scheint es zu funzen. Nice Work.