BackupsMSL: verschil tussen versies

Uit MakerSpace Leiden
Ga naar: navigatie, zoeken
(Destination)
(main host 192.168.5.1)
Regel 21: Regel 21:
  
 
  #!/bin/sh
 
  #!/bin/sh
 +
E=0
 +
echo Offsite backups:
 
  mount -p -t ufs | awk '{print  $2 }' | while read dir
 
  mount -p -t ufs | awk '{print  $2 }' | while read dir
 
  do
 
  do
        rsync -Caz $dir --exclude "**/dev/**" backup-msl:/usr/home/backup-msl/msl-main
+
        /bin/echo -n "  $dir:"
 +
        if rsync -xCaz $dir --exclude "**/dev/**" backup-msl:/usr/home/backup-msl/msl-main; then
 +
                echo OK - completed without error.
 +
        else
 +
                E=$?
 +
                echo failed.
 +
        fi
 
  done
 
  done
 +
echo
 +
exit $E
 +
  
 
scheduling, capturing the output, logging and email-alerts are all handled as per periodic(8)[http://nixdoc.net/man-pages/FreeBSD/man8/periodic.8.html].
 
scheduling, capturing the output, logging and email-alerts are all handled as per periodic(8)[http://nixdoc.net/man-pages/FreeBSD/man8/periodic.8.html].

Versie van 22 feb 2018 om 17:43

Backup setup (temporary).

Common setup

A pub/private keypair; with a blind, incremental rsync over ssh.

It relies on

 .ssh/config
 .ssh/id_rsa

for its config and data.

main host 192.168.5.1

File in

/usr/local/etc/periodic/daily/999.backup

which does an incremental backup (rsync) of all mounted UFS volumes.

#!/bin/sh
E=0
echo Offsite backups:
mount -p -t ufs | awk '{print  $2 }' | while read dir
do
        /bin/echo -n "  $dir:"
        if rsync -xCaz $dir --exclude "**/dev/**" backup-msl:/usr/home/backup-msl/msl-main; then
               echo OK - completed without error.
        else
                E=$?
                echo failed.
        fi
done
echo
exit $E


scheduling, capturing the output, logging and email-alerts are all handled as per periodic(8)[1].

deur-db 192.168.4.2

File in

 /home/mvn/backup.sh

which does an incremental backup (rsync) of all mounted EXT4 volumes - excluding the devices:

 #!/bin/sh
 mount -t ext4 | awk '{print  $3 }' | while read dir
 do

rsync -Caz $dir --exclude '/proc/**' --exclude '/dev/**' --exclude '/sys/**' backup-msl:/usr/home/backup-msl/msl-deurdb

 done

This is called by crontab:

 MAILTO=xxx@xxxx.com
 0 3 * * * test -x /home/mvn/backup.sh && /home/mvn/backup.sh > /var/log/backup.log 2&>1

with a quick sentinel and we're keeping a log of the most recent backups.

Destination

On the destination server:

 command="/usr/local/bin/rsync --server  -logDtprCze.iLsfxC . backup-msl/msl-main",,restrict,no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa ....

backed by an encrypted FS with a daily zfs-snapshot post the backup run; which ultimately gets offloaded onto tape. The rentention policy is currently 5 years (to be adjusted).