Netzwerk-Backup mit Samba
Ein Linux-Server in Ihrem Netzwerk eignet sich hervorragend, um Backups anzulegen. Das Programm smbclient holt auf Wunsch Dateien von den Rechnern der User und kopiert sie in ein gepacktes TAR-Verzeichnis auf dem Server. Alles, was Sie dazu brauchen ist eine Zugriffsmöglichkeit auf die jeweiligen Verzeichnisse und ein kleines Shell-Script unter Linux.
Das Programm smbclient gehört zum Linux-Fileserver Samba. Und den gibt es für jedes Linux. Bei Suse ist smbclient in der Grundausstattung bereits vorinstalliert. Ansonsten hilft es, in Yast nach "smbclient" zu suchen.
Der Programmaufruf zum Sichern der Dateien sieht so aus:
smbclient //client/freigabe -Uuser%pw -Tc filename.tar verzeichnis/
Als erster Parameter kommt der Name des gewünschten Rechners sowie der Freigabe auf diesem PC. Nach -U geben Sie den Benutzernamen, ein Prozentzeichen und das Kennwort ein. Wer möchte, kann das Kennwort auch weg lassen. Dann fragt smbclient während der Ausführung danach. Der Parameter -Tc ist zuständig für das Erzeugen eines neuen TAR-Archivs, in dem die Daten landen.
Um das Backup in geregelte Bahnen zu bringen, brauchen Sie ein kleines Skript, das wie folgt aussieht:
#!/bin/sh
sikdir=/home/sicherung/
configfile=/home/go/netsik.conf
smb_conf_file=/home/go/smb_local.conf
# Pruefen, ob Sicherungsverzeichnis vorhanden
if [ ! -d ${sikdir} ]
then
echo FEHLER: ${sikdir} nicht vorhanden
exit 1
fi
# Konfigurationsdaten einlesen
for confline in `cat ${configfile}`
do
# Konfigurationsdaten einlesen
host=`echo ${confline} | cut -d ';' -f1`
freigabe=`echo ${confline} | cut -d ';' -f2`
verzeichnis=`echo ${confline} | cut -d ';' -f3`
username=`echo ${confline} | cut -d ';' -f4`
password=`echo ${confline} | cut -d ';' -f5`
# Meldung
echo Erzeuge Sicherung fuer:
echo Host: ${host}
echo Freigabe: ${freigabe}
echo Verzeichnis: ${verzeichnis}
# Namen der Sicherungsdatei erzeugen
sikfile=${sikdir}${host}_${freigabe}_${verzeichnis}__`date +%Y%m%d`.tar
echo $sikfile wird erzeugt
# Backup starten
smbclient //${host}/${freigabe} \
-s ${smb_conf_file} \
-U${username}%${password} \
-Tc ${sikfile} ${verzeichnis}
# Daten komprimieren
echo $sikfile wird komprimiert
gzip $sikfile
echo Fertig
done
Die ersten Zeilen legen den Ordner für die Sicherungsdateien fest sowie die Pfadnamen für die Konfigurationsdaten. In der hier verwendeten Datei netsik.conf stecken die Angaben über Hosts, Freigaben, Verzeichnisse und Benutzerdaten nach dem Schema
rechner;freigabe;verzeichnis;username;passwort
also zum Beispiel
wxp;data;WWW;go;geheim
wxp;texte;Geschichten;go;geheim
Den Parameter für das zu sichernede Sicherungsverzeichnis können Sie auch weglassen, dann sähe die Zeile so aus:
wxp;texte;;go;geheim
Achtung: der hier angegebene Verzeichnisname darf keine Leerzeichen enthalten. Sonst kommt das Script durcheinander.
Die zweite Konfigurationsdatei, im Beispiel „smb_local.conf“ wird nur benötigt, falls keine vollständige Samba-Konfiguration vorliegt. Im Beispiel hat diese Datei nur drei Zeilen:
[global]
character set=ISO8859-15
client code page=850
Mit den beiden Einträgen unter [global] ermöglichen Sie, dass smbclient auch Dateien mit Umlauten erkennt.
Nach dem Einlesen der Konfigurationsdaten prüft das Programm, ob das Sicherungsverzeichnis vorhanden ist. Falls nicht, bricht das Skript ab. Achtung: Der Benutzername, unter dem die Sicherung durchgeführt wird, braucht für diese Verzeichnis die entsprechenden Lese- und Schreibrechte.
Danach liest das Skript die Konfigurationsdatei Zeile für Zeile ein. Aus jeder Zeile werden mit je einem „cut“-Befehl die Felder für Host, Freigabe und so weiter heraus gelesen.
Nach der Ausgabe der Sicherungsinformationen geht es ans Sichern der Daten. Dazu erhält smbclient alle notwendigen Daten als Variablen. Übrigens: Mit \ und dem folgenden Zeilenumbruch am Ende einer Zeile können Sie an sich einzeilige Befehle in mehrere Zeilen schreiben und den Code so übersichtlicher gestalten. Achten Sie aber darauf, dass hier vor \ immer ein Leerzeichen steht.
Nach dem Sichern kümmert sich noch gzip um die Backup-Datei und verkleinert sie. Je nach Rechnergeschwindigkeit und Datenmenge kann das ein Weilchen dauern.
Nach dem Speichern der Datei netsik.sh führen Sie die den Befehl
chmod 700 netsik.sh
aus. Damit wird die Datei nur für Sie lesbar. Mit
chmod 600 netsik.conf
und
chmod 600 smb_local.conf
sorgen Sie dafür, dass die beiden KOnfigurationsdateien auch nur für Sie lesbar sind.
Danach kann es los gehen. Das Backup wird ins Sicherungsverzeichnis geschrieben. Um später eine Datei aus dem Backup zu fischen, verwenden Sie am besten den Midnight Commander. Führen Sie damit den Cursor über die gzip-Datei und drücken Sie Return. Nach wenigen Sekunden ist die Sicherungsdatei geöffnet und Sie können darin wie in einer Verzeichnisstruktur nach Dateien suchen.
- Fernwartung für Linux-Server
- Fileserver: Knoppix als Samba-Server im Netzwerk
- Linux, Mac und Windows in einem Netzwerk
- Apple Macintosh dauerhaft an Windows-Server anbinden
- Samba-Server mit Suse 10.1
- Samba als Primärer Domänencontroller
- Sichere Verbindung mit SSH
- Die Server-Alternative: Linux
- Samba unter Suse 10.1: Netbios-Namen nachträglich ändern
- Linux Rechte für Datei und Verzeichnis
blog comments powered by Disqus

RSS Abonnieren
Facebook
Del.icio.us
Twitter