Home Laufwerk sichern

Aus Linupedia.org
Wechseln zu: Navigation, Suche

Mit rsync /home/"User" sichern

Vorraussetzung

Vorraussetzung für die Verwendung dieses Scriptes ist eine Verbindung über ssh von Client zum Server. Diese Verbindung darf kein Passwort haben. Am sichersten ist eine Verbindung über einen rsa-Key.

Änderungen nach dem kopieren des Scriptes

Wenn dieser Code kopiert wird, müssen folgende Variablen geändert werden:

  • SERVER = IP Adresse oder gegebenenfals Hostname des Zielservers
  • USER = Nur wenn ein anderes Home Laufwerk gesichert wird als das des aktiven Users
  • ZIEL = Ordner in den die Dateien kopiert werden
  • QUELLE = Wenn ein anderer Ordner kopiert werden soll
  • LOG = Der Pfad für die Log-Datei

Das Script


#!/bin/sh
#Script zum sichern des Home Verzeichnisses auf den Server
#Inkrementelle Sicherung
#Stand: 05.04.2007
#Dieses Skript wird durch eine Cron Job alle 2 Stunden aufgerufen.
#Cron Befehl der in der Cron Tab eingetragen werden muss:
#00 */2 * * * User /Ordner/mit/Script/sicherung

#Festlegung der Variablen
TIMESTAMP=$(date +"%d.%m.%Y - %H:%M")
SERVER="IP-Adresse"
QUELLE="/home/"$USER"/"
ZIEL=$SERVER":/Ziel/Ordner"
ERFOLG="Sicherung erfolgreich! Zuletzt gesichert: "$TIMESTAMP
ERROR="Sicherung nicht erfolgreich am "$TIMESTAMP
LOG="/Ziel/für/die/Logdatei/sicherung.log"
TRENN="================================================"

#Wenn der Server erreichbar ist...
if ping -c 1 $SERVER >> /dev/null
         then

#soll das gesamte home Laufwerk des Users auf den Server kopiert
#werden. Dabei werden mit --delete alle Dateien die auf dem Server existieren,
#aber nicht auf dem Quellrechner, gelöscht. Dies ist der Fall wenn man zum Beispiel
#Dateien in einen anderen Ordner verschoben hat.

        rsync -au -e ssh -v --delete $QUELLE $ZIEL && echo $ERFOLG >> $LOG

#Es wird eine Log Datei geschrieben in die einen Eintrag mit einem Zeitstempel
#und eine Erfolgsmeldung geschrieben wird.
#Wenn die Sicherung nicht durchgeführt wurde, wird auch eine Statusmeldung in
#die Log Datei geschrieben.

else
        echo $ERROR >> $LOG
fi

#Es wird eine Trennlinie in die Logdatei geschrieben, wegen der Übersicht.

echo $TRENN >> $LOG

Verwendete Parameter

Parameter Bedeutung
-a Dieser Parameter fasst verschiedene andere Parameter zusammen:
  • Rekursiv
  • Symbolischer Link
  • Rechte
  • Zeiten
  • Gruppe
  • User

Diese Einstellungen bleiben beim kopieren erhalten.

-u Update: Wenn auf dem Server eine neuere Datei liegt, wird diese nicht ersetzt.
-e Gibt das Protokoll an über das die Dateien übertragen werden. Hier: ssh.
-v Verbose Mode: Zeigt an welche Dateien kopiert werden. Kann weg gelassen werden wenn das Script über Cron gestartet wird.
--delete Dateien die auf dem Client nicht mehr existieren werden auch auf dem Server gelöscht. So hat man ein exaktes Abbild des aktuellen Home Verzeichnisses auf dem Server.


Quellen und weiterführende Links


Back To Backup