Datensicherung mit tar

Aus LUG Fulda

Wechseln zu: Navigation, Suche

Artikel ist noch nicht fertiggestellt!


Inhaltsverzeichnis

Einleitung

In den nächsten Tagen soll hier ein Artikel entstehen.... bitte um etwas Geduld.

Nachtrag: Es braucht bei dem schönen Wetter noch etwas mehr Zeit als gedacht ;) --Holger Menz 14:12, 28. Jun 2006 (MEST)


Kleine Parameterkunde

Eine kurze Erklärung der verwendeten Parameter. Für eine detailierte Übersicht bitte die Man-Page hinzuziehen.

Aktionen

-c --create
neues Archiv erzeugen
-d, --diff, --compare
Dateien im Archiv und im Dateisystem vergleichen

Auswahl des Archiv-Formats

-j, -bzip2
Archiv mit bzip2(1) (de)komprimieren
-z, --gzip, --ungzip
Archiv mit gzip(1) (de)komprimieren

Datei-Eigenschaften

-p --same-permissions
Zugriffsrechte beim Auspacken erhalten
--numeric-owner
Zahlen für Benutzer bzw. Gruppen benutzen
-X, --exclude-from=DATEI
Dateien auslassen, auf die in DATEI angegebene Muster passen

Informationen

-totals
geschriebene Bytes beim Schreiben des Archivs zeigen
-v, --verbose
zu bearbeitende Dateien ausführlich listen

Definition von Ausnahmen (exclude)

Man kann die Ausnahmen entweder direkt einzeln als Parameter übergeben oder man schreibt sie in eine Datei mit folgendem Aufbau.

Beispielhafte exclude-Datei:

/mnt/*
/proc/*
/srv/*
/sys/*
/tmp/*
[...]
/var/spool/squid/*  (Squid-Cache)

Auf diese Weise werden zwar die Verzeichnis mitgesichert, nicht aber deren Inhalt. Bei einer Rücksicherung würden die leeren Verzeichnisse jedoch wieder angelegt werden.

Übersicht Teststellung

Um die Beispiele noch etwas besser zu veranschaulichen können wir uns folgendes Szenario für die Beispiele in diesem Artikel vorstellen:


(Client) Computer.gif-------------------LAN-------------------Computer.gif (Server)


Client
Hostname client
IP-Adresse 192.168.10.100
OS Gnu/Linux Debian Sarge
Hardware PIII-733/512MB/20GB HDD
NIC 100M/Bit Ethernet
Server
Hostname server
IP-Adresse 192.168.10.1
OS Gnu/Linux Debian Sarge
Hardware AMD64-3200+/1024MB/720GB HDD
NIC 100M/Bit Ethernet
Streamer 4MM DAT 4GB (SCSI)

Festplatte umkopieren mit tar

Notiz: cd <ausgangs-dir> ; tar cf - . | (cd <ziel> ; tar xvpf -) 

Sicherung über LAN auf anderen Rechner (Datei)

Um Daten von dem Client auf den Server zu sichern, schreiben wir über einen verschlüsselten Datenstrom (ssh) die zu sichernden Daten in eine Datei auf dem Server.

client:~# tar cvjf - / --exclude-from=tar-exclude.txt | ssh server.local \
'cat > /home2/client-gesamtsicherung-`date +%d-%m-%y`.tar.bz2'

oder

client:~# tar cvjf - / --exclude-from=tar-exclude.txt | ssh server.local \
'dd of=/home2/client-gesamtsicherung-`date +%d-%m-%y`.tar.bz2'

Überprüfung der Sicherung

Sicherung über LAN auf anderen Rechner (Streamer)

Zur Optimierung sollte möglichst das Programm buffer auf der Serverseite installiert sein (also in dem Rechner mit dem Streamer). Dem verwendeten Programm buffer kommt hier noch eine besondere Bedeutung zu.

buffer wird auf der Serverseite benötigt um die I/O-Performance zu steigern. Speziell bei Streamern ist ein kontinuierlicher Datenstrom für die Performance entscheident. Sollte Daten nicht schnell genug geliefert werden, wird der Schreibvorgang unterbrochen. Der Kopf muss dann neu positioniert werden. Das ist zwar nicht dramatisch, aber verlangsamt den Vorgang erheblich und belastet zusätzlich die Laufwerksmechanik.

Überprüfung der Sicherung

... Beitrag erweitern...

ssh-Verschlüsselungsoverhead vermeiden

Notiz: netcat anstatt ssh

In einer sicheren Umgebung kann/will man eventuell auf die Verschlüsselung per ssh verzichten. Der Datendurchsatz kann sich dadurch deutlich verbessern.

[...]

Beispiele

Notiz: Sammlung von Beispielen mit Beschreibungen

Script um Linux-System auf Windows2003-Server zu sichern

Rohform - braucht noch Erklärung

#!/bin/bash
#
# einfaches Backup-Script um einmal monatlich eine Systemsicherung durchzufuehren
#
export MOUNTPOINT=/mnt

# Besonderheiten des CIFS-Mountings umgehen
umount /home/sweep
mount /home/sweep

# Pruefen ob $MOUNTPOINT existiert
if [ ! -d $MOUNTPOINT ]    # test ok = 0 / falsch = 1
then
        echo "Mount-Point $MOUNTPOINT nicht vorhanden !!!"|mail root@server.local
	exit 1
fi

# Share mounten
# mount.cifs //dc01/linux /mnt/ -o user=linux,password=xxxxxx
mount /mnt

grep $MOUNTPOINT /etc/mtab > /dev/null
MOUNT=$?

	if [ "$MOUNT" = "0" ]    # test ok = 0 / falsch = 1
	then
	cd /root
	time tar cvz --exclude-from=exclude.tar -f /mnt/backup-pc2-`date +%d-%m-%y`.tar.gz /
	cd /
	echo "Datensicherung abgeschlossen. Vergleiche Daten....."
	time tar dzf /mnt/backup-pc2-`date +%d-%m-%y`.tar.gz > /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "+--------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "  	Platzbelegung	      " >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "+--------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log

	df -h >> /mnt/backup-pc2-`date +%d-%m-%y`.log

	echo "+-------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo " Verzeichnisinhalt  /mnt        " >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "+-------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log

	ls -lah /mnt >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "---------------------------------" >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	
	unix2dos /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo|mutt -znx -i "/mnt/backup-pc2-`date +%d-%m-%y`.log" -s "Backuplog-File: Datensicherung vom `date +%d-%m-%y`" root@server.local
	pwd >> /mnt/backup-pc2-`date +%d-%m-%y`.log
	echo "+-------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log
        echo "    Badblock-Check sda & sdb     " >> /mnt/backup-pc2-`date +%d-%m-%y`.log
        echo "+-------------------------------+" >> /mnt/backup-pc2-`date +%d-%m-%y`.log

time badblocks /dev/sda >> /mnt/backup-pc2-`date +%d-%m-%y`.log
time badblocks /dev/sdb >> /mnt/backup-pc2-`date +%d-%m-%y`.log

	echo "---------------------------------" >> /mnt/backup-pc2-`date +%d-%m-%y`.log

	umount /mnt
else
	echo "Datensicherung fehlgeschlagen. Ziel war nicht gemountet. Bitte manuell pruefen!"|mail root@server.local

fi

Vor- und Nachteile von tar

Notiz: Tar-Versionen und Kompatibilität; Größenbeschränkungen

Fazit

Meine Werkzeuge