From 89f7000a6d518596fe7387ee48d97fa41e34b487 Mon Sep 17 00:00:00 2001 From: Nathan Steel Date: Mon, 21 Mar 2022 10:31:18 +0000 Subject: [PATCH] Add minecraft backup script --- backup/backup_mc.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 backup/backup_mc.sh diff --git a/backup/backup_mc.sh b/backup/backup_mc.sh new file mode 100755 index 0000000..e7d8642 --- /dev/null +++ b/backup/backup_mc.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# This runs in a cronjob every hour +# e.g. 0 */1 * * * /home/nathan/scripts/backup/backup_mc.sh -s mc -d /srv/mc -b /home/nathan/backups/mcRdiff/mc -r nathan@alphavps.aney.co.uk -R ~/backups/minecraft/mc + +while getopts s:d:b:r:R:n: flag +do + case "${flag}" in + s) SERVERNAME=${OPTARG};; + d) DIR=${OPTARG};; + b) BACKUPDIR=${OPTARG};; + r) REMOTE=${OPTARG};; + R) REMOTEBACKUP=${OPTARG};; + n) NOW=${OPTARG};; + esac +done + +TIME=$(date +%H%M) + +# Make backup location if it's not there +mkdir -p $BACKUPDIR + +# Rdiff to reduce the storage needs of rsync +rdiff-backup \ + --exclude $DIR/scripts/ \ + $DIR $BACKUPDIR + +# If time is 00:00/midnight +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 \ + $BACKUPDIR/ \ + $REMOTE:$REMOTEBACKUP +fi +