[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: backup auf server



Martin Wegmann wrote:
On Friday 29 April 2005 12:25, Bernhard Wehmann wrote:
[...]

Hallo Martin,
im Linux-Magazin gab es 9/2004 einen recht gut lesbaren Artikel zu
rsync, mit Beispielskripts:

http://www.linux-magazin.de/Artikel/ausgabe/2004/09/backups/backups.html?pr
int=y


das sieht exakt nach dem aus, was ich suche! Leider verstehe ich das script nicht. Wo gebe ich nun genau mein /home/martin and bzw. mein 111.222.33.44/backup/martin an?

SERVER="$1" sieht danach aus, aber $ bezieht sich doch auf irgendeinen vorher angebenen servername, oder?

Oder ist es DATA_PATH=/DATA?

Grüsse, Martin



#!/bin/bash
 #
 # Das Skript zieht per Rsync Backups
 # http://www.heinlein-partner.de
 #
 # Aufruf: backup-rsync <FQDN-Servername>
 #
# ### Aufrufparameter des Skripts ist ein FQDN-Hostname
 if [ -n "$1" ] ; then
         SERVER="$1"
 else
         echo "Error: Usage $0 <fqdn-hostname>"
         exit
 fi
# ### Konfiguration
 # Pruefen, ob noch ein gewisser Prozentsatz
 # an Plattenplatz und Inodes frei ist?
 CHECK_HDMINFREE=true
 HDMINFREE=90
# Soll die Daten-Partition readonly gemountet werden,
 # wenn sie nicht in Gebrauch ist?
 MOUNT_RO=false
 MOUNT_DEVICE=/dev/hdc1
# Unter welchem Pfad wird gesichert?
 DATA_PATH=/DATA
# Liste von Dateipattern, die nicht gesichert werden sollen
 EXCLUDES=/etc/rsync-excludes
# Weitere Optionen für Rsync. Eventuell ist eine Limitierung
 # der Bandbreite sinnvoll, Angabe in Kbyte/s:
 # EXTRAOPT="--bwlimit=256"
 EXTRAOPT=""
# ### Let's Rock`n`Roll # Pruefe auf freien Plattenplatz
 GETPERCENTAGE='s/.* \([0-9]\{1,3\}\)%.*/\1/'
 if $CHECK_HDMINFREE ; then
         KBISFREE=`df /$DATA_PATH | tail -n1 | sed -e "$GETPERCENTAGE"`
         INODEISFREE=`df -i /$DATA_PATH | tail -n1 | sed -e "$GETPERCENTAGE"`
         if [ $KBISFREE -ge $HDMINFREE -o $INODEISFREE -ge $HDMINFREE ] ; then
                 echo "Fatal: Not enough space left for rsyncing backups!"
                 logger "Fatal: Not enough space left for rsyncing backups!"
                 exit
         fi
 fi
# Festplatte rw remounten falls gewuenscht!
 if $MOUNT_RO ; then
         if `mount -o remount,rw $MOUNT_DEVICE $DATA_PATH` ; then
                 echo "Error: Could not remount $MOUNT_DEV readwrite"
                 logger "Error: Could not remount $MOUNT_DEV readwrite"
                 exit
         fi
 fi
# Gegebenenfalls Verzeichnis anlegen
 if ! [ -d $DATA_PATH/$SERVER/daily.0 ] ; then
         mkdir -p $DATA_PATH/$SERVER/daily.0
 fi
# Los geht`s: Rsync zieht ein Vollbackup
 echo "Starting rsync backup from $SERVER..."
 logger "Starting rsync backup from $SERVER..."
rsync -avz --numeric-ids -e ssh --delete --delete-excluded \
         --exclude-from="$EXCLUDES"  $EXTRAOPT                \
         $SERVER:/ $DATA_PATH/$SERVER/daily.0
# Rückgabewert pruefen.
 # 0 = fehlerfrei,
 # 24 ist harmlos; tritt auf, wenn waehrend der Laufzeit
 # von Rsync noch (/tmp?)-Dateien verändert oder geloescht wurden.
 # Alles andere ist fatal -- siehe man (1) rsync
 if ! [ $? = 24 -o $? = 0 ] ; then
         echo "Fatal: rsync finished $SERVER with errors!"
         logger "Fatal: rsync finished $SERVER with errors!"
 fi
# Verzeichnis anfassen, um Backup-Datum zu speichern
 touch $DATA_PATH/$SERVER/daily.0
# Fertig!
 echo "Finished rsync backup from $SERVER..."
 logger "Finished rsync backup from $SERVER..."
# Sicher ist sicher...
 sync
# Festplatte ro remounten falls gewuenscht!
 if $MOUNT_RO ; then
         if `mount -o remount,ro $MOUNT_DEVICE $DATA_PATH` ; then
                 echo "Error: Could not remount $MOUNT_DEV readonly"
                 logger "Error: Could not remount $MOUNT_DEV readonly"
                 exit
         fi
 fi


$1 steht für das 1. Argument das man an der Kommandozeile mitgibt.

Ohne das ich das jetzt genau gelesen habe: script_name server_name



Reply to: