#!/bin/bash # e.g. 0 0 * * * /home/nathan/scripts/backup/backup_git.sh -d /srv/git -b /srv/dev-disk-by-uuid-d9f9e8fd-c473-450e-919e-c43200a6ac4a/gitBackup/ -r nathan@alphavps.aney.co.uk -R ~/backups/git/lilman/ while getopts s:d:b:r:R: flag do case "${flag}" in d) DATA=${OPTARG};; b) BACKUPDIR=${OPTARG};; r) REMOTE=${OPTARG};; R) REMOTEBACKUP=${OPTARG};; esac done mkdir -p $BACKUPDIR # Incremental backup of the directory locally rdiff-backup $DATA $BACKUPDIR # Don't keep backups over 1W. In case of accidental/malicious deletes overnight rdiff-backup --remove-older-than 2W $BACKUPDIR # Make offsite backup ssh $REMOTE mkdir -p $REMOTEBACKUP # Copy the incremental backup accross rsync -az -e ssh \ --delete \ $BACKUPDIR \ $REMOTE:$REMOTEBACKUP