Changes to backup scripts
parent
c9c67dd9e9
commit
001cfda595
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# RUN EACH BACKUP SCRIPT IN HERE AS ITS OWN CRONJOB!!!!!
|
||||||
|
|
||||||
|
# Every hour # Don't add this script though, just as example
|
||||||
|
# 0 0/1 * * * /home/nathan/scripts/backup/borg/rn3/backup.sh
|
||||||
|
# At 2am
|
||||||
|
# 0 2 * * * /home/nathan/scripts/backup/borg/rn3/backup.sh
|
||||||
|
|
||||||
|
# Ensure borg_avps is in .ssh/config # and that server has borg user (with perms for server directories)
|
||||||
|
# Req installs: borg acl
|
||||||
|
# Also follow comments above each script
|
||||||
|
|
||||||
|
# source /path/to/script # Uses current script process/vars
|
||||||
|
# /bin/bash /path/to/script # Runs script as seperate process
|
||||||
|
|
||||||
|
# DOCKER BACKUP # Probably will need rX permissions (read, and X directories (open))
|
||||||
|
# sudo setfacl -Rdm "u:nathan:rX" /home/samba/share/Docker_prod && sudo setfacl -Rm "u:nathan:rX" /home/samba/share/Docker_prod
|
||||||
|
# Also need to be part of docker group to down/up: sudo groupadd docker && sudo usermod -aG docker nathan
|
||||||
|
/bin/bash /home/nathan/scripts/backup/borg/docker_backup.sh \
|
||||||
|
-c "duckdns homer" \
|
||||||
|
-d /home/samba/share/Docker_prod \
|
||||||
|
-b /home/nathan/testBack/docker \
|
||||||
|
-r pi2 \
|
||||||
|
-R ~/backups/pi1/docker
|
||||||
|
|
||||||
|
# DIRECTORY BACKUP(S)
|
||||||
|
/bin/bash /home/nathan/scripts/backup/borg/directory_backup.sh \
|
||||||
|
-d "/home/nathan/AA/A /home/nathan/AA/C" \
|
||||||
|
-b /home/nathan/testBack/dir \
|
||||||
|
-r pi2 \
|
||||||
|
-R ~/backups/pi1/dir
|
||||||
|
|
||||||
|
# Cronjob backup, requires permissions of /var/spool/cron/crontabs (rwX, X being x but for directories only, so they can be opened not sure this works on Unix)
|
||||||
|
# sudo setfacl -Rdm "u:nathan:rX" /var/spool/cron/crontabs && sudo setfacl -Rm "u:nathan:rX" /var/spool/cron/crontabs
|
||||||
|
/bin/bash /home/nathan/scripts/backup/borg/directory_backup.sh \
|
||||||
|
-d /var/spool/cron/crontabs \
|
||||||
|
-b /home/nathan/testBack/cron \
|
||||||
|
-r pi2 \
|
||||||
|
-R ~/backups/pi1/cron
|
||||||
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# DOCKER BACKUP
|
|
||||||
# source /home/nathan/scripts/backup/borg/docker_backup.sh \
|
|
||||||
# -c "duckdns homer" \
|
|
||||||
# -d /home/samba/share/Docker_prod \
|
|
||||||
# -b /home/nathan/testBack \
|
|
||||||
# -r pi2 \
|
|
||||||
# -R ~/backups/pi1/docker \
|
|
||||||
# -N 0
|
|
||||||
|
|
||||||
# DIRECTORY BACKUP
|
|
||||||
source /home/nathan/scripts/backup/borg/directory_backup.sh \
|
|
||||||
-d "/home/nathan/AA/A /home/nathan/AA/C" \
|
|
||||||
-b /home/nathan/testBack/dir \
|
|
||||||
-r pi2 \
|
|
||||||
-R ~/backups/pi1/AA
|
|
||||||
|
|
||||||
source /home/nathan/scripts/backup/borg/directory_backup.sh \
|
|
||||||
-d /var/spool/cron/crontabs \
|
|
||||||
-b /home/nathan/testBack/cron \
|
|
||||||
-r pi2 \
|
|
||||||
-R ~/backups/pi1/cron
|
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# RUN EACH BACKUP SCRIPT IN HERE AS ITS OWN CRONJOB!!!!!
|
||||||
|
|
||||||
|
# Every hour # Don't add this script though, just as example
|
||||||
|
# 0 0/1 * * * /home/nathan/git/scripts/backup/borg/rn3/backup.sh
|
||||||
|
# At 2am
|
||||||
|
# 0 2 * * * /home/nathan/git/scripts/backup/borg/rn3/backup.sh
|
||||||
|
|
||||||
|
# Ensure borg_avps is in .ssh/config # and that server has borg user (with perms for server directories)
|
||||||
|
# Req installs: borg acl
|
||||||
|
# Also follow comments above each script
|
||||||
|
|
||||||
|
# source /path/to/script # Uses current script process/vars
|
||||||
|
# /bin/bash /path/to/script # Runs script as seperate process
|
||||||
|
|
||||||
|
# DOCKER BACKUP
|
||||||
|
# sudo setfacl -Rdm "u:nathan:rX" /home/samba/share/Docker_prod && sudo setfacl -Rm "u:nathan:rX" /home/samba/share/Docker_prod
|
||||||
|
# sudo groupadd docker && sudo usermod -aG docker nathan
|
||||||
|
/bin/bash /home/nathan/git/scripts/backup/borg/docker_backup.sh \
|
||||||
|
-c "anetwork.uk aney.co.uk dokuwiki gitea homepage mariadb npm planka uptimekuma vaultwarden" \
|
||||||
|
-d /home/nathan/docker \
|
||||||
|
-b /home/nathan/BACKUP \
|
||||||
|
-r borg_avps \
|
||||||
|
-R /home/nathan/BACKUP/rn3/docker
|
||||||
|
|
||||||
|
# WEBSITE DIRECTORY # All sites together for this one (look at seperating in future)
|
||||||
|
# /bin/bash /home/nathan/git/scripts/backup/borg/directory_backup.sh \
|
||||||
|
# -d "/home/nathan/websites" \
|
||||||
|
# -b /home/nathan/BACKUP/dir \
|
||||||
|
# -r pi2 \
|
||||||
|
# -R /home/nathan/BACKUP/rn3/website
|
||||||
|
|
||||||
|
# Maria/mysql Database backup
|
||||||
|
# /bin/bash /home/nathan/docker/mariadb/scripts/backup.txt
|
||||||
|
|
||||||
|
# Cronjob backup
|
||||||
|
# Requires permissions of /var/spool/cron/crontabs (rX, X for directories only, so they can be opened)
|
||||||
|
# sudo setfacl -Rdm "u:nathan:rX" /var/spool/cron/crontabs && sudo setfacl -Rm "u:nathan:rX" /var/spool/cron/crontabs
|
||||||
|
/bin/bash /home/nathan/git/scripts/backup/borg/directory_backup.sh \
|
||||||
|
-d /var/spool/cron/crontabs \
|
||||||
|
-b /home/nathan/BACKUP/cron \
|
||||||
|
-r pi2 \
|
||||||
|
/home/nathan/BACKUP/rn3/cron
|
||||||
@ -1,61 +0,0 @@
|
|||||||
#!/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
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue