diff --git a/backup/backup_git.sh b/backup/backup_git.sh new file mode 100755 index 0000000..e9ad5be --- /dev/null +++ b/backup/backup_git.sh @@ -0,0 +1,30 @@ +#!/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 +