Backup: Difference between revisions

From Hobbynet Admin Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
= Remote backup (nfs server) door bit=
= backup naar bit =
BIT verzorgt onze backup offsite.<br>
Via backup2bit trekt elke nacht rond 01:00 een back-up met snap shots van onze server.<br>
BIT kan met ssh inloggen op onze machine (nfs-int) en rsync alleen /disk
In de nacht van zondag op maandag wordt een full back-up getrokken.<br>
Hiervoor is een interface aangemaakt die alleen routeert naar 213.136.12.128/25 (BIT IPv4 space).<br>
De rest zijn incrimentals.<br>
Rsync wordt verder geregeld door BIT.
We bewaren 5 full back-up's en de dagelijkse backup's worden elke week overschreven.<br>
= back-up naar nas =
Elke dag wordt met rsync een volledige back-up naar de nas getrokken '''zonder snapshots'''
== script ==
<pre>
#!/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


This backup is created on a BIT Backup solution using ZFS, snapshots and compression.
touch $HNET_LOCK
Snapshots can be found in the .zfs directory in your nfs-mount.


== uitsluitingen van backup ==
logger -p auth.notice "=*= backup2nas started on server backup2bit =*="
      /disk/backup/db01-int/databases/mysql/dbs/
echo "`date +%F+%R` bezig met backupen van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
      /disk/backup/hcc-db03-int/databases/mysql/dbs/
date >>"$LOGFILE"
      /disk/backup/hcc-db04-int/databases
      /disk/backup/scripting-int/databases/mysql/dbs/
      /disk/mail
      /disk/site/Old_sites
      /disk/site/hcc.nl/afd-almere/backup/site-almere.hcc.nl-20140601-214842.zip
      /disk/site/hcc.nl/afd-almere/www/administrator/components/com_akeeba/
      /disk/site/hcc.nl/afd-fryslan/www/downloads/
      /disk/site/hcc.nl/afd-leiden/www/administrator/components/com_akeeba/backup/
      /disk/site/hcc.nl/afd-leiden/www/tmp/administrator/components/com_akeeba/backup/
      /disk/site/hcc.nl/afd-utrecht/www/administrator/components/com_akeeba/backup/
      /disk/site/hcc.nl/apeldoorn/www/administrator/components/com_akeeba/backup
      /disk/site/hcc.nl/beta.kadernet
      /disk/site/hcc.nl/deventer/backup
      /disk/site/hcc.nl/games-ftp
      /disk/site/hcc.nl/games/backup-tmp
      /disk/site/hcc.nl/games/www/administrator/components/com_akeeba/backup
      /disk/site/hcc.nl/genealogie-stamboom/backup
      /disk/site/hcc.nl/groepen/www/images
      /disk/site/hcc.nl/groepen/www/tmp
      /disk/site/hcc.nl/hcc-upload
      /disk/site/hcc.nl/hcc.nl/apeldoorn/www/administrator/components/com_akeeba/backup
      /disk/site/hcc.nl/hcc.nl/commodore-gg/www/administrator/components/com_akeeba
      /disk/site/hcc.nl/hcc.nl/deventer-webbouw/www/administrator/components/com_akeeba
      /disk/site/hcc.nl/hcc.nl/deventer/www/hccdeventer/administrator/components/com_akeeba
      /disk/site/hcc.nl/hcc.nl/flightsimulator/backup
      /disk/site/hcc.nl/hcc.nl/seniorenacademie/www/Backup
      /disk/site/hcc.nl/hccdagen
      /disk/site/hcc.nl/hccforum-beta/backup
      /disk/site/hcc.nl/kadernet/Temp
      /disk/site/hcc.nl/kadernet/www/art/uploads/files/hccdagen-2005.zip
      /disk/site/hcc.nl/pcactive-forum/
      /disk/site/hcc.nl/pcactive-oldsite/
      /disk/site/hcc.nl/poc-groepen/backup
      /disk/site/hcc.nl/seniorenacademie/www/Backup/
      /disk/site/hcc.nl/test
      /disk/site/hcc.nl/webcam
      /disk/site/overige/image-backup
      /disk/site/users/scouthout/www/administrator/components/com_akeeba/backup/


== restore ==
if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then
De backup kan je op nfs-int terug vinden in /mnt/backup (een read-only nfs mount).
        echo "$MOUNTDIR wordt gemount"
To create a mountpoint for your host, add the following line to /etc/fstab:
        mount $MOUNTDIR
  backup4.bit.nl:/backup/<your hostname>/ /mnt/backup nfs ro,rsize=32768,hard,intr,bg 0 0
fi


== tech support ==
if [ -e $BACKUP_MOUNT_CHECK_FILE ]; then
Voor tech support kan je BIT bellen op het bekende nr.
        echo "`date +%F+%R` bezig met backupen van /disk naar $BACKUPTARGET"
        rsync -a  /disk/ $BACKUPTARGET -r -t --delete


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


== etc backup ==
        echo "`date +%F+%R` klaar met backup van /disk naar $BACKUPTARGET"
Het script /usr/local/hobbynet/bin/backup_server_configs rsynct elke dag om 0:15 alle etc dirs van alle servers. Een kopie van deze configuratie bestanden wordt in de tree '/disk/backup' neergezet, en gaat dus vanzelf mee met de dagelijkse backup naar de BIT omgeving.
        logger -p auth.notice "=*= backup2nas finished on server backup2bit =*="
fi


== db-int ==
if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then
Elke dag maakt db-int van postgress en mysql een db dump, en zet deze op db-int weg in /backup.
Dit bestand wordt elke dag om 00:20 door het script (/usr/local/hobbynet/bin/backup_server_configs) gersynct naar nfs, en gaat daarna vanzelf mee naar de remote backup bij BIT.


== ns-int ==
        echo "`date +%F+%R` backup van /disk naar $BACKUPTARGET MISLUKT"
Elke dag om 00:25 wordt /var/cache/bind ge rsynct naar /disk/backup/ns-int/var/cache/bind  door script/usr/local/hobbynet/bin/backup_ns
        echo "backup van /disk naar $BACKUPTARGET MISLUKT" | mail -s backup2nas rootmail@hobby.nl
        logger -p auth.notice "=*= backup2nas MISLUKT on server backup2bit =*="
fi
</pre>
= back-up naar bas (offsite) =
Elke dag wordt met rsync een volledige back-up naar de nas bij Bas getrokken '''zonder snapshots'''<br>
Dit doen we stel er gebeurt er wat met BIT dan hebben we nog alles achter de hand. <br>
De backup op de nas zijn volledig encrypted, encryptie sleutels zijn bekend bij Bas en Hans
== script ==
<pre>
#!/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


== mail-dev ==
touch $HNET_LOCK
Elke dag om 00:35 wordt /backup van mail-dev gebackup naar /disk/backup/mail-dev-int/databases dit gebeurt door middel van script /usr/local/hobbynet/bin/backup_mail-dev-int


== monitor ==
logger -p auth.notice "=*= backup2bas started on server userstore1 =*="
Elke dag wordt door script /usr/local/hobbynet/bin/backup_monitor de hobbynet site die in /disk staat gebackupt.
echo "`date +%F+%R` bezig met backupen van /disk naar backup-hobbynet.hobby.nl" >>"$LOGFILE"
date >>"$LOGFILE"


= offsite backup 2 =
if [ ! -e $BACKUP_MOUNT_CHECK_FILE ]; then
Elke dag om 1:00 wordt heel /disk ge rsynct naar backup-hobbynet.hobby.nl (let op: onder user hobbynet) deze machine staat bij bas thuis.
        echo "$MOUNTDIR wordt gemount"
Dit gebeurt door script /usr/local/hobbynet/bin/backup_nfs.
        mount $MOUNTDIR
fi


= old backup =
if [ -e $BACKUP_MOUNT_CHECK_FILE ]; then
[[Tape Backup]]
        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
</pre>
= database backups =
Elke dag worden op alle databases gebackupt van de servers waar mysql op draait.
Voor tijden zie [[crontabs]]

Revision as of 12:35, 10 February 2019

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