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