Backup

From Blue-IT.org Wiki

Revision as of 13:30, 13 April 2008 by Apos (talk | contribs) (Download)

Unison

Unison ist ein leider nicht mehr aktiv weiter entwickeltes Programm zur echten Synchronisation zweier Verzeichnisse. Bitte lesen Sie den zugehörigen Wikipedia Artikel zu Unison.

Einfaches Backup mit rsync und zenity

Dieses sehr einfache Skript kopiert alle Daten der Heimatverzeichnisses (/home/Benutzername) eines entfernten Rechners auf den lokalen Rechner.

Dabei werden alle lokalen Dateien ersetzt. Die Synchronisation erfolgt also nur in eine Richtung!

Download

Das Skript finden Sie in gepackter (!) Form hier oder Sie kopieren den Quelltext weiter unten in eine eigene Datei (der Dateiname spielt keine Rolle).

Wenn Sie das Skript heruntergeladen haben, speichern Sie es bitte in einem lokalen Verzeichnis. Erstellen Sie z.B. das versteckte (!) Verzeichnis

mkdir ~/.Skripte

und kopieren Sie das Backupskript dort hinein.

Sie müssen das Skript ausführbar machen. Mit einem Rechtsklick im Dateibrowser öffnen Sie das Eigenschaften Fenster und dort den Reiter Zugriffsrechte:

Datei ausführbar machen

Erster Start ohne Parameter

Jetzt können Sie das Skript das erste Mal anklicken.

Datei in Nautilus ausführen

Klicken Sie auf ausführen.

Es wird eine Fehlermeldung erscheinen:

Start aus Nautilus heraus

Es fehlen noch dieverse Parameter zum Aufruf. Dort ist der genaue Aufrufsyntax beschrieben.

/home/benutzername/skriptname IP_Adresse_des_Desktop Verzeichnis
  • IP_Adresse_des_Desktop: bezeichnet die Internetadresse desjenigen Rechners von dem die Daten bezogen werden.
  • Verzeichnis: bezeichnet das lokale Untervereichnis unterhalb des Heimatverzeichnisses des aktuellen Benutzers. Ein Punkt "." steht für das Benutzerverzeichnis selbst (Standard).

ACHTUNG: Wird der Punkt als Verzeichnis angegeben, werden alle zu sichernden Daten und Unterverzeichnisse unwiderbringlich ersetzt!

Start

Erstellen Sie einen Programmstarter mit dem Gnome-Panel oder rufen Sie das Skript von der Befehlszeile aus mit den eben genannten Parametern auf.

Im weiteren Verlauf wird die Verbindung zum externen Rechner mit "ping" geprüft und ggf. das Programm beendet.

Im nächsten Dialog werden dann die zu synchronisierenden Verzeichnisse angezeigt:

[Image:Backup_Skript_-_Hautpdialog.png| Hauptdialog]

Nochmalige Warnung: Mit bestätigen auf OK werden ALLE Dateien im als zweiten Parameter angegebenen Verzeichnis unwiderbringlich überschrieben.

Quellcode

Dies hier ist immer die aktuelle Version des Skriptes.

Für die Steuerung des Backups sind die Zeilen

DOC="Dokumente"
PIC="Bilder"
MUS="Musik"
VID="Videos"
DES="Desktop"
WEB=".mozilla"
EMAIL=".mozilla-thunderbird"
VBOX=".VitualBox"

und

	true "$DOC" \
	true "$PIC" \
	true "$MUS" \
	true "$VID" \
	true "$DES" \
	true "$WEB" \
	true "$EMAIL" \
	false "$VBOX" \

verantwortlich.

true bedeutet, das Verzeichniss ist standardmässig mit einem Häckchen versehen. false das Gegenteil.

Das Editieren der Datei setzt Kenntnis der Programmierung der Bash voraus und des Umganges mit dem Programm zenity.

#!/bin/bash
#
#DESKTOP="192.168.178.24"
DESKTOP="$1"
#BACKUPDIR="."
BACKUPDIR="$2"
USERDIR="/home/${USER}"
FULLBACKUPDIR="${USERDIR}/${BACKUPDIR}"

TITLE="Backup Desktop nach Notebook"
TEXT="Bitte wählen Sie die zu sichernden Verzeichnisse\n\
welche vom Desktop auf das Notebook gesichert werden sollen,\n\
aus der folgenden Liste aus.\n\n\
Sychronisieren von Computer mit IP: ${DESKTOP}\n\
in das lokale Verzeichnis: ${FULLBACKUPDIR}\n\n\
ALLE DATEIEN WERDEN OHNE NACHFRAGE ÜBERSCHRIEBEN.\n\
Die Sicherung erfolgt in das Heimatverzeichnis dieses Benutzers."
HEIGHT="600"
WIDTH="600"

# Parameter Testen
[ "$BACKUPDIR" ] || zenity --error --width="900" --title="$TITLE" \
--text="Sie müssen als zweiten Parameter ein Verzeichnis angeben in das gesichert werden soll. Dies kann ein extra Backupverzeichnis sein, oder einfach '.' (Punkt) für das aktuellen Heimatverzeichnsis.\n\n\
ACHTUNG, alle Daten werden dabei überschrieben.\n\n\
Legen sie dazu einen Anwendungsstarter im Panel\n\
mit folgendem Inhalt an: \n\n\
${0} 192.168.178.80 .\n\
${0} 192.168.178.80 mein_backup."

[ "$BACKUPDIR" ] || exit 1

# Ping Desktop
ERROR_PING="1"

ping -c1 $DESKTOP && ERROR_PING="0"
[ "$ERROR_PING" == "1" ] && zenity --error \
	--title="$TITLE" --text "Rechner mit der IP $DESKTOP ist nicht erreichbar.\n\
Bitte erst die Netzwerkverbindung herstellen.\n\
Programm wird beendet."
[ "$ERROR_PING" == "1" ] && exit 1

# Ins Backupverzeichnis wechseln
mkdir -p ${FULLBACKUPDIR}
cd ${FULLBACKUPDIR}

DOC="Dokumente"
PIC="Bilder"
MUS="Musik"
VID="Videos"
DES="Desktop"
WEB=".mozilla"
EMAIL=".mozilla-thunderbird"
VBOX=".VitualBox"

LIST="$(zenity  \
	--height="$HEIGHT" --width="$WIDTH" \
	--title="$TITLE" \
	--text="$TEXT" \
	--list --checklist --multiple \
	--separator="  " \
	--print-column='ALL' \
	--column="Backup" --column="Verzeichnis" \
	true "$DOC" \
	true "$PIC" \
	true "$MUS" \
	true "$VID" \
	true "$DES" \
	true "$WEB" \
	true "$EMAIL" \
	false "$VBOX" \

)"

(
cd /home/$USER/$BACKUPDIR
sleep 5
ERROR_RSYNC=1
#XPARAM=" -bg white -fg black -T 'Backup, Abbrechen mit Strg+C' "
XTERMTITLE="Backup läuft, Abbrechen mit Strg+C"
PERCENT=0

for entry in ${LIST}; do 
	PERCENT=$(($PERCENT+10))
	echo "${PERCENT}" 
        echo "# $entry wird gesichert." 
	rsync -av --delete ${DESKTOP}:${USERDIR}/${entry} ${USERDIR}/${BACKUPDIR}/.
done

echo "100" "Backup beendet."
) | zenity  --progress \
		--auto-close \
		--height="$HEIGHT" --width="$WIDTH" \
		--title="$TITLE" \
		--text="Backup läuft ..." \
		--percentage=0

[ "$?" = -1 ] && zenity --error --text="Backup wurde abgebrochen."