Fatengelyes mentő script

Már többször volt feladatom, hogy készítsek mentést, több kevesebb adatról. Szerintem egyértelműen a legjobb megoldás a Bacula. Azonban nem kell mindig kaviár.
Egyszerűbb esetekben egy ehhez hasonló script is tökéletesen megteszi. Ez növekményes mentést végez, a cp és az rsync segítségével.

#!/bin/bash

if [ "$USER" != "www-data" ]; then
  echo "Not allowed user: $USER!"
  exit 1
fi

SRCDIR=/var/lib/datas/
DSTDIR=/var/backups
BCKCOUNT=7

H=`hostname`
case "$H" in
  dbank1)
    SRCDIR="dbank2:$SRCDIR"
    DSTDIR="$DSTDIR/dbank2"
  ;;
  dbank2)
    SRCDIR="dbank1:$SRCDIR"
    DSTDIR="$DSTDIR/dbank1"
  ;;
esac

if [ ! -d $DSTDIR/0 ]; then
echo "creating backup desatination"
mkdir -p $DSTDIR/0
fi

for((d=$[$BCKCOUNT-1];d>=0;d--)); do
if [ -d $DSTDIR/$d ]; then
e=$[$d+1]
echo "moveing backup directory $d -> $e"
mv $DSTDIR/$d $DSTDIR/$e
fi
done

echo "linking backup"
cp -al $DSTDIR/1 $DSTDIR/0

echo "rsync"
rsync -aSHW --stats --numeric-ids --exclude 'lost+found' --delete-after $SRCDIR $DSTDIR/0/

if [ -d $DSTDIR/$BCKCOUNT ]; then
echo "remove older directory"
rm -rf $DSTDIR/$BCKCOUNT
fi

Hozzászólások

rsync-hez ajánlanám a --backup és --backup-dir kapcsolókat, ezekkel meglesz az eggyel régebbi anyag minden törölt vagy módosított fájlból. ha jól néztem, te is hasonlót csinálsz. ha nem jól vettem ki akkor bocs :)

amúgy meg nem lenne jobb rdiff-backup vagy duplicity tényleges növekményes backup-hoz? vagy rsnapshot?