From f3b06d8ac4dcb5bcc02e479954f8e087628d593c Mon Sep 17 00:00:00 2001 From: Nathan Steel Date: Fri, 22 Apr 2022 11:41:47 +0100 Subject: [PATCH] Add git backup script --- backup/backup_git.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 backup/backup_git.sh 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 +