Backup
From Blue-IT.org Wiki
Contents
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:
Erster Start ohne Parameter
Jetzt können Sie das Skript das erste Mal anklicken.
Klicken Sie auf ausführen.
Es wird eine Fehlermeldung erscheinen:
Es fehlen noch dieverse Parameter zum Aufruf.
In der eben gezeigten Fehlermeldung 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."