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

Re: Gutes TAPE fuer Backup



Hallo Niels,

Am Dienstag, 3. April 2007 14:18 schrieb Niels Jende:
>
> könntest / würdest Du denn Dein script irgendwo hochladen wollen? Würde
> mich ja ag interessieren, wie Du das gelöst hast.
>
Nun, hier ist ein Ausschnitt mit dem wichtigsten:

BKUPDIR="/backup/cp/bs0004_etc"
KEYPAR="-i /etc/bkupserver/mandant/cp/info/root_bs0004_backup"
EXCLUDES_DIR="/etc/bkupserver/mandant/cp/info/excludes"
EXCLUDES_FILE=$EXCLUDES_DIR/bs0004_etc
STDPAR="--stats --delete --numeric-ids --modify-window=1 --timeout=900 --partial"
EXCLPAR="--exclude-from=$EXCLUDES_FILE"
ARCHPAR="--archive --compress"
LINK_DEST_PAR="--link-dest=$BKUPDIR/bkup.0"
TMPMSG=`mktemp  /tmp/backup.msg.XXXXXXXXXX`
REM_IP=comparat.de
REM_PORT=131
USERNAME=root
REM_PATH="/etc"
SAVED_BACKUPS=60
mkdir "$BKUPDIR/temp"
rsync -e "ssh -q $KEYPAR -p $REM_PORT" $ARCHPAR $STDPAR $LINK_DEST_PAR \
                $EXCLPAR $USERNAME@$REM_IP:"$REM_PATH" "$BKUPDIR/temp" 
2>$TMPMSG 1>&2
rsyerror=$?

    case $rsyerror in
        0 |  24 )
            # Das hoechste Snapshot abloeschen SAVED_BACKUPS muss einen Wert > 
0 haben!
            if [ -d $BKUPDIR/bkup.$SAVED_BACKUPS ] ; then
                rm -rf $BKUPDIR/bkup.$SAVED_BACKUPS
            fi
            if [ -d $BKUPDIR/temp ] ; then
                if [ -d $BKUPDIR/bkup.0 ] ; then
                    # Alle anderen Snapshots eine Nummer nach oben verschieben 
(die letzte 0 nur mit --link-dest!)
                    for ((OLD=SAVED_BACKUPS-1; OLD >= 0 ; OLD--)); do
                        if [ -d $BKUPDIR/bkup.$OLD ] ; then
                                NEW=$[ $OLD + 1 ]
                            mv $BKUPDIR/bkup.$OLD $BKUPDIR/bkup.$NEW
                        fi
                    done
                fi
                mv $BKUPDIR/temp $BKUPDIR/bkup.0
            fi
            ;;
    *) echo "Keine Rotation wg. RSync Fehler" >>$TMPMSG
       localInsertEvent 1 ERR 36 "will not rotate (rsync error)." "0"
        ;;
    esac


Das echte Script hat 465 Zeilen und behandelt alle möglichen Spezialfälle auch 
für Windows-Rechner und Rsync-Server. Die Scripte werden über ein 
Web-Frontend generiert - ein Script alleine macht den Backup-Server nicht 
aus. Ergebnisse werden in eine Event-Datenbank geschrieben, Fehler- und 
Erfolgsmails können versandt werden und die Rsync-Ergebnisse werden in eine 
Statistik-Tabelle für Auswertungen geschrieben (für den automatischen 
Backup-Scheduler, an dem ich noch arbeite).

Aber die obigen Schnipsel zeigen, wie man sich für den Eigenbedarf eine Lösung 
stricken kann.

Grüße
Manfred



Reply to: