#!/bin/bash # voor documentatie, zie # http://blog.xlshosting.nl/algemeen/rolling-backups-met-rsync/ # configuratie hier WEKEN=3 MAANDEN=6 BUSER=xlshosting #<< UW LOGIN NAAM HIER H=$(hostname) # hieronder niks aanpassen! WEEKDAY=$(date +%u) # 1-7 MONTHDAY=$(date +%d | sed s/^0\\+// ) # 1-31 MONTH=$(date +%m | sed s/^0\\+//) # 01-12 WEEK=$(date +%U | sed s/^0\\+// ) # 00-53 # we gaan uit van dagelijks if [ $WEEKDAY = 1 ] then PREVDAY=6 # op maandag vallen we terug op zaterdag, aangezien we op zondag geen daily maken else PREVDAY=$[WEEKDAY-1] fi MSG="dagelijkse backup voor dag $MONTHDAY van maand $MONTH, weekdag $WEEKDAY, naar daily/$WEEKDAY" DIR=$H-daily/$WEEKDAY/ PREVDIR=../../$H-daily/$PREVDAY/ # maar misschien is het zondag if [ $WEEKDAY = 7 ] then N=$[WEEK%WEKEN] MSG="wekelijkse backup voor week $WEEK naar weekly/$N" DIR=$H-weekly/$N/ fi # of de eerste van de maand if [ $MONTHDAY = 1 ] then N=$[MONTH%MAANDEN] MSG="maandelijkse backup voor maand $MONTH naar monthly/$N" DIR=$H-monthly/$N/ fi echo $MSG echo Directory voor deze backup: $DIR echo Directory als basis voor incremental linken: $PREVDIR echo -ne "mkdir $H-daily\nmkdir $H-weekly\nmkdir $H-monthly\nmkdir $DIR\n" | sftp -o 'IdentityFile /root/.ssh/id_rsa.xlsbackup' $BUSER@backup-003.xlshosting.nl > /dev/null 2> /dev/null rsync -e 'ssh -i /root/.ssh/id_rsa.xlsbackup' --bwlimit=5000 --link-dest=$PREVDIR --delete -ax --exclude /usr/local/sysbk --exclude '/var/www/html/phpMyAdmin-*' --exclude '/tmp/sess_*' --exclude /dev / $BUSER@backup-003.xlshosting.nl:$DIR 2>&1 echo Backup klaar. Diskspacerapport: ssh -T -i /root/.ssh/id_rsa.xlsbackup $BUSER@backup-003.xlshosting.nl quota