You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
Bash
62 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
HOME=/home/nathan
|
|
|
|
DOCKER=$HOME/docker
|
|
BACKUP=$HOME/backup/
|
|
DIRS=('anetwork.uk' 'aney.co.uk' 'mariadb' 'npm' 'vaultwarden')
|
|
#DIRS=('nginx' 'npm' 'umami' 'uptimekuma' 'vaultwarden')
|
|
#DIRS=( "$DOCKER"/*/ )
|
|
|
|
REMOTE=alphavps
|
|
REMOTEBACKUP=/home/nathan/backups/docker/rn2
|
|
|
|
# Run the mariadb/mysql backup script for the docker container
|
|
/bin/bash /home/nathan/docker/mariadb/scripts/backup.txt
|
|
|
|
# Backup the docker containers
|
|
# requires rdiff-backup rsync docker-compose
|
|
# also setup .ssh/config for alphavps, and add to a cronjob (as root)
|
|
|
|
for i in "${DIRS[@]}"
|
|
do
|
|
#echo $i
|
|
# Stop docker containers before backup incase any moving parts
|
|
cd $DOCKER/$i
|
|
docker compose stop
|
|
rdiff-backup $DOCKER/$i $BACKUP/$i
|
|
rdiff-backup --force --remove-older-than 2M $BACKUP/$i
|
|
docker compose start
|
|
done
|
|
|
|
# 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 \
|
|
--delete \
|
|
$BACKUP \
|
|
$REMOTE:$REMOTEBACKUP
|
|
|
|
## Now backup the websites (one offs)
|
|
REMOTEBACKUP=/home/nathan/backups/websites/rn2
|
|
# Create the remote directory for backup if it doesn't exist
|
|
ssh $REMOTE mkdir -p $REMOTEBACKUP
|
|
|
|
rsync -azh -e ssh \
|
|
--delete \
|
|
$HOME/websites \
|
|
$REMOTE:$REMOTEBACKUP
|
|
|
|
## Crontab (has the backup scripts called)
|
|
REMOTEBACKUP=/home/nathan/backups/cron/rn2
|
|
# Create the remote directory for backup if it doesn't exist
|
|
ssh $REMOTE mkdir -p $REMOTEBACKUP
|
|
|
|
rsync -azh -e ssh \
|
|
--delete \
|
|
/var/spool/cron/crontabs \
|
|
$REMOTE:$REMOTEBACKUP
|
|
|