Backup

From Hobbynet Admin Wiki
Revision as of 12:35, 10 February 2019 by Bas (talk | contribs)
Jump to navigation Jump to search

backup naar bit

Via backup2bit trekt elke nacht rond 01:00 een back-up met snap shots van onze server.
In de nacht van zondag op maandag wordt een full back-up getrokken.
De rest zijn incrimentals.
We bewaren 5 full back-up's en de dagelijkse backup's worden elke week overschreven.

back-up naar nas

Elke dag wordt met rsync een volledige back-up naar de nas getrokken zonder snapshots

script

#!/bin/bash
LOGFILE="/var/log/backup2nas.log"
HNET_LIB=/usr/local/hobbynet/lib
HNET_LOCK=$HNET_LIB/backup2nas.lock
MOUNTDIR=/mnt/backup-nas
BACKUPTARGET=$MOUNTDIR/disk
BACKUP_MOUNT_CHECK_FILE=$MOUNTDIR/ikbengemount.txt
HNET_LOCK_TIME=1200
if [ -e $HNET_LOCK ]; then
        echo "lock file $HNET_LOCK gedetecteerd" >&2
        if test "`find $HNET_LOCK -mmin +$HNET_LOCK_TIME`"
        then
                echo "`date +%F+%R` Lock file $HNET_LOCK is ouder dan $HNET_LOCK_TIME minuten en is daarom verwijderd" >&2
                rm $HNET_LOCK
                echo "het eventueel nog lopend rsync proces wordt getermineerd"
                echo "backup naar $BACKUPTARGET loopt langer dan $HNET_LOCK_TIME minuten, daarom is dit proces getermineerd" | mail -s backup2nas rootmail@hobby.nl
                logger -p auth.notice "=*= backup naar $BACKUPTARGET loopt langer dan $HNET_LOCK_TIME minuten, daarom is dit proces getermineerd =*="
                pkill -f "rsync -a /disk/ $BACKUPTARGET -r -t --delete"
        else
                echo "Script $0 draait op moment al " >&2
                echo "Is dit niet het geval, verwijder $HNET_LOCK en draai het script opnieuw" >&2
                exit
        fi
fi

touch $HNET_LOCK

logger -p auth.notice "=*= backup2nas started on server backup2bit =*="
echo "`date +%F+%R` bezig met backupen van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
date >>"$LOGFILE"

if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then
        echo "$MOUNTDIR wordt gemount"
        mount $MOUNTDIR
fi

if [ -e $BACKUP_MOUNT_CHECK_FILE ]; then
        echo "`date +%F+%R` bezig met backupen van /disk naar $BACKUPTARGET"
        rsync -a  /disk/ $BACKUPTARGET -r -t --delete

        echo "`date +%F+%R` klaar met backup van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
        date >>"$LOGFILE"
        echo "------------" >>"$LOGFILE"

        echo "`date +%F+%R` klaar met backup van /disk naar $BACKUPTARGET"
        logger -p auth.notice "=*= backup2nas finished on server backup2bit =*="
fi

if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then

        echo "`date +%F+%R` backup van /disk naar $BACKUPTARGET MISLUKT"
        echo "backup van /disk naar $BACKUPTARGET MISLUKT" | mail -s backup2nas rootmail@hobby.nl
        logger -p auth.notice "=*= backup2nas MISLUKT on server backup2bit =*="
fi

back-up naar bas (offsite)

Elke dag wordt met rsync een volledige back-up naar de nas bij Bas getrokken zonder snapshots
Dit doen we stel er gebeurt er wat met BIT dan hebben we nog alles achter de hand.
De backup op de nas zijn volledig encrypted, encryptie sleutels zijn bekend bij Bas en Hans

script

#!/bin/bash
LOGFILE="/var/log/backup2bas.log"
HNET_LIB=/usr/local/hobbynet/lib
HNET_LOCK=$HNET_LIB/backup2bas.lock
MOUNTDIR=/mnt/backup-bas
BACKUPTARGET=$MOUNTDIR/disk
BACKUP_MOUNT_CHECK_FILE=$MOUNTDIR/ikbengemount.txt
HNET_LOCK_TIME=1200
if [ -e $HNET_LOCK ]; then
        echo "lock file $HNET_LOCK gedetecteerd" >&2
        if test "`find $HNET_LOCK -mmin +$HNET_LOCK_TIME`"
        then
                echo "`date +%F+%R` Lock file $HNET_LOCK is ouder dan $HNET_LOCK_TIME minuten en is daarom verwijderd" >&2
                rm $HNET_LOCK
                echo "het eventueel nog lopend rsync proces wordt getermineerd"
                echo "backup naar $BACKUPTARGET loopt langer dan $HNET_LOCK_TIME minuten, daarom is dit proces getermineerd" | mail -s backup2bas rootmail@hobby.nl
                logger -p auth.notice "=*= backup naar $BACKUPTARGET loopt langer dan $HNET_LOCK_TIME minuten, daarom is dit proces getermineerd =*="
                pkill -f "rsync -a  /disk/ $BACKUPTARGET -r -t --delete"
        else
                echo "Script $0 draait op moment al " >&2
                echo "Is dit niet het geval, verwijder $HNET_LOCK en draai het script opnieuw" >&2
                exit
        fi
fi

touch $HNET_LOCK

logger -p auth.notice "=*= backup2bas started on server userstore1 =*="
echo "`date +%F+%R` bezig met backupen van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
date >>"$LOGFILE"

if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then
        echo "$MOUNTDIR wordt gemount"
        mount $MOUNTDIR
fi

if [ -e $BACKUP_MOUNT_CHECK_FILE ]; then
        echo "`date +%F+%R` bezig met backupen van /disk naar $BACKUPTARGET"
        rsync -a  /disk/ $BACKUPTARGET -r -t --delete

        echo "`date +%F+%R` klaar met backup van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
        date >>"$LOGFILE"
        echo "------------" >>"$LOGFILE"

        echo "`date +%F+%R` klaar met backup van /disk naar $BACKUPTARGET"
        logger -p auth.notice "=*= backup2bas finished on server userstore1 =*="
fi

if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then

        echo "`date +%F+%R` backup van /disk naar $BACKUPTARGET MISLUKT"
        echo "backup van /disk naar $BACKUPTARGET MISLUKT" | mail -s backup2bas rootmail@hobby.nl
        logger -p auth.notice "=*= backup2bas MISLUKT on server userstore1 =*="
fi

rm $HNET_LOCK

database backups

Elke dag worden op alle databases gebackupt van de servers waar mysql op draait. Voor tijden zie crontabs