From 4965172586179333894326a91b44815bd9b7ba07 Mon Sep 17 00:00:00 2001 From: Nathan Steel Date: Wed, 23 Mar 2022 16:59:09 +0000 Subject: [PATCH] Add home backup script --- backup/backup_home.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 backup/backup_home.sh diff --git a/backup/backup_home.sh b/backup/backup_home.sh new file mode 100755 index 0000000..b3507ee --- /dev/null +++ b/backup/backup_home.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Backup home dir via rdiff-backup +# Then rsync it to remote +# e.g. 0 */1 * * * /home/nathan/scripts/backup/backup_home.sh -d /home/nathan -b /srv/dev-disk-by-uuid-d9f9e8fd-c473-450e-919e-c43200a6ac4a/nathan/lilman/ -r nathan@alphavps.aney.co.uk -R ~/backups/home/lilman + +while getopts s:d:b:r:R:n: flag +do + case "${flag}" in + d) DATA=${OPTARG};; + b) BACKUPDIR=${OPTARG};; + r) REMOTE=${OPTARG};; + R) REMOTEBACKUP=${OPTARG};; + n) NOW=${OPTARG};; + esac +done + +mkdir -p $BACKUPDIR + +# Incremental backup of the directory locally (hourly?) +rdiff-backup $DATA $BACKUPDIR +# Don't keep backups over 1W +rdiff-backup --remove-older-than 1W $BACKUPDIR + +# Backup to remote +TIME=$(date +%H%M) + +if [ "$TIME" = 0000 ] || [ "$NOW" = 1 ] +then + # Create the remote directory for backup if it doesn't exist + ssh $REMOTE mkdir -p $REMOTEBACKUP + + # Copy the backup accross + # -e ssh makes it secure + rsync -azh -e ssh \ + $DATA/ \ + $REMOTE:$REMOTEBACKUP +fi +