Jelenleg ez a script menti valamennyi szerverünket, egy /BACKUP alá mountolt iscsi-n keresztül megosztott könyvtárba.
#!/bin/bash
# Ellenorizzuk hogy letezik-e a config file
if [ -f /etc/bkp.conf ]; then source /etc/bkp.conf ; else echo /etc/bkp.conf not found; exit ;fi
DATE=`date +%Y-%m-%d`
#
#stat file beallitasa, backup utan ebbe kerulnek a hibak is.
#
STATFILE=/BACKUP/stat/$HOST.stat
rm $STATFILE
touch $STATFILE
#
# Beallitjuk a mentesi konyvtarat a config file alapjan
#
BACKUPDIR=/BACKUP/$HOST/
#
# A torlendo backup beallitasa config alapjan
#
LASTDATE=`date +%Y-%m-%d --date="$DAYS days ago"`
if [ -d /$BACKUPDIR/$LASTDATE ]; then rm -rf /$BACKUPDIR/$LASTDATE ; fi
echo $HOST >>/BACKUP/backuplog/$HOST-backup.log
date >>/BACKUP/backuplog/$HOST-backup.log
mkdir /$BACKUPDIR/$DATE
MDB=$BACKUPDIR/$DATE/mysql/
if [ "$EXCLUDE" != "" ]; then
    tar -cjf /$BACKUPDIR/$DATE/backup.tar.bz2 --exclude=$EXCLUDE $DIRS
else
    tar -cjf /$BACKUPDIR/$DATE/backup.tar.bz2 $DIRS
fi
STAT=$?
echo $STAT>>/BACKUP/backuplog/$HOST-backup.log
echo FS $STAT $DATE >>$STATFILE
if [ $MYSQLBACKUP = 0 ]; then
    date >>/BACKUP/backuplog/$HOST-backup.log
    exit ;
fi
#
# backup konyvtar a mysql-nek
#
mkdir /$BACKUPDIR/$DATE/mysql/
# Db-nkent csinalunk mentest az adatbazisrol, majd betomoritjuk
STAT=0
DBS="$(mysql -u$MYSQLUSER -p$MYSQLPASSWD -Bse 'show databases')"
for db in $DBS
do
    skipdb=-1
    if [ "$EXCLUDEDB" != "" ];
    then
        for i in $EXCLUDEDB
        do
            [ "$db" == "$i" ] && skipdb=1 || :
        done
    fi
    if [ "$skipdb" == "-1" ] ; then
        FILE="$MBD/$db.$HOST.$NOW.gz"
        mysqldump -u$MYSQLUSER -p$MYSQLPASSWD $db |bzip2 >$MDB/$db.sql.bz2
        STAT=$?
        echo $db $STAT>>/BACKUP/backuplog/$HOST-backup.log
        echo DB $db $STAT>>$STATFILE
fi
done
date >>/BACKUP/backuplog/$HOST-backup.log
Itt talátlható a config file:
# Ha az sql-t is menteni akarjuk , akkor az ertek 1, ha nem akkor 0 MYSQLBACKUP=1 # celszeru valos hosztnevet beallitani, ha kozpontilag mentunk, hogy konnyebben tudjuk azonositani # a mentest, ebbe az alkonyvtarba teszi a menteseket HOST=host.name.tld # beallithatjuk hany napig orizze a backupot DAYS=7 # mentesre varo konyvtarak felsorolasa DIRS="/etc /var/www /home" # olvasasi joggal rendelkezo sql user beallitasa (ha nem mentunk db-t akkor uresen hagyhato) MYSQLUSER=backupuser MYSQLPASSWD=backuppass # amennyiben nem akarunk menteni bizonyos konyvtarakat, itt felsorolhatjuk EXCLUDE="/home/luzer /home/senki" # ugyanezt adatbazisokkal is megtehetjuk EXCLUDEDB="tmpdb" # a 2 utolso parameter teljes egeszeben elhagyhato
nagios script a mentések ellenőrzésére.
#!/bin/sh
PROGPATH=`echo  | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/utils.sh
# Dátumok beállítása
DATE=`date +%Y-%m-%d`
DATE1=`date +%Y-%m-%d --date="1 days ago"`
DATE2=`date +%Y-%m-%d --date="2 days ago"`
BACKUPPATH=/BACKUP/stat/stat
if [ -f $BACKUPPATH ]; then
    EXIST=1;
else
    echo ERROR: Statfile not found!;
    exit $STATE_CRITICAL ;
fi;
LASTBK=`grep FS $BACKUPPATH | awk '{print }'`
STAT=`grep FS $BACKUPPATH | awk '{print }'`
#
# Itt beallithatjuk hany nap utan tekintjük WARNING illetve ERROR statusznak a mentas hianyat.
# Csak ERROR és WARNING eseten erdemes exit-elni, hogy lefuthasson a kovetkezo ellenorzes.
#
case  "$LASTBK" in
    $DATE)
# ma tortent mentes
    ;;
    $DATE1)
# tegnap tortent mentes
    ;;
    $DATE2)
# tegnapelott tortént mentes
    ;;
    *)
    echo "WARNING: Utolso mentes: $LASTBK";
    exit $STATE_WARNING;
    ;;
esac
case "$STAT" in
    0)
    echo "OK: Utolso mentes: $LASTBK";
    exit $STATE_OK;
    ;;
    1)
    echo "WARNING: Nyitott file-ok nem menthetoek";
    exit $STATE_WARNING;
    ;;
    *)
    echo "ERROR: Nem tortent mentes!";
    exit $STATE_CRITICAL ;
    ;;
esac