From 64c9ec7ab645ac7c95dafb1f6bffed946cf7893c Mon Sep 17 00:00:00 2001 From: Nathan Steel Date: Sun, 11 May 2025 13:55:25 +0100 Subject: [PATCH] rn3 changes + crontab script example --- backup/borg/other.txt | 9 ++++++++- backup/borg/rn3/backup.sh | 17 +++++++---------- backup/borg/rn3/crontab | 4 ++++ 3 files changed, 19 insertions(+), 11 deletions(-) create mode 100644 backup/borg/rn3/crontab diff --git a/backup/borg/other.txt b/backup/borg/other.txt index 2816646..9cfe6a5 100644 --- a/backup/borg/other.txt +++ b/backup/borg/other.txt @@ -1,2 +1,9 @@ minecraft -factorio \ No newline at end of file +factorio + +cron +docker/x +home +sql +website +config (A directory where I'll put all configs I edit, and have them symlinked to correct places. Makes it easier to backup per-server) \ No newline at end of file diff --git a/backup/borg/rn3/backup.sh b/backup/borg/rn3/backup.sh index 3d9b061..2d687bc 100644 --- a/backup/borg/rn3/backup.sh +++ b/backup/borg/rn3/backup.sh @@ -1,30 +1,26 @@ #!/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) # sudo apt install acl && wget https://github.com/borgbackup/borg/releases/download/1.2.4/borg-linux64 # https://borgbackup.readthedocs.io/en/stable/installation.html#pyinstaller-binary # sudo cp borg-linux64 /usr/local/bin/borg && sudo chown root:root /usr/local/bin/borg && sudo chmod 755 /usr/local/bin/borg && sudo ln -s /usr/local/bin/borg /usr/local/bin/borgfs -# Also follow comments above each script -# sudo adduser borg # useradd probably best, don't need a /home/ right? +# Also follow comments above each script # BORG USER ON REMOTE HOST (below), everything else after this on local +# sudo adduser borg ; sudo setfacl -Rdm "u:borg:rwX" /home/nathan/BACKUP && sudo setfacl -Rm "u:borg:rwX" /home/nathan/BACKUP # (borgBackups) # source /path/to/script # Uses current script process/vars # /bin/bash /path/to/script # Runs script as seperate process +# 0 2 * * * /home/nathan/git/scripts/backup/borg/rn3/backup.sh # AT 2AM # DOCKER BACKUP # change nathan to whoever is running the script on host # sudo setfacl -Rdm "u:nathan:rX" /home/nathan/docker && sudo setfacl -Rm "u:nathan:rX" /home/nathan/docker # sudo groupadd docker ; sudo usermod -aG docker nathan # If docker group exist, the next command will still run ; /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 \ + -b /home/nathan/BACKUP/docker \ -r borg_avps \ -R /home/nathan/BACKUP/rn3/docker @@ -38,11 +34,12 @@ # Maria/mysql Database backup # /bin/bash /home/nathan/docker/mariadb/scripts/backup.txt +# 0 */1 * * * /home/nathan/git/scripts/backup/borg/rn3/backup.sh # EVERY HOUR # Cronjob backup # change nathan to whoever is running the script on host # 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 + -r borg_avps \ + -R /home/nathan/BACKUP/rn3/cron diff --git a/backup/borg/rn3/crontab b/backup/borg/rn3/crontab new file mode 100644 index 0000000..7ce7452 --- /dev/null +++ b/backup/borg/rn3/crontab @@ -0,0 +1,4 @@ +# Potental issue with 'permissions denied' https://serverfault.com/q/78159 # OR sudo crontab -u yourUser -e + +0 2 * * * /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 +0 */1 * * * /home/nathan/git/scripts/backup/borg/directory_backup.sh -d /var/spool/cron/crontabs -b /home/nathan/BACKUP/cron -r borg_avps -R /home/nathan/BACKUP/rn3/cron \ No newline at end of file