diff --git a/production/host_vars/spring.kde.org/vars.yml b/production/host_vars/spring.kde.org/vars.yml index 152cce1..0cc1b9c 100644 --- a/production/host_vars/spring.kde.org/vars.yml +++ b/production/host_vars/spring.kde.org/vars.yml @@ -1,8 +1,6 @@ --- backup_directory: backups -# nothing else uses the kater backup space at the moment, -# and spring has lots of data (due to nextcloud) -hetzner_backup_host: kater +hetzner_backup_host: pirate # Borg used to backup NextCloud backup_apt_dependencies: [borgbackup] backup_borg_passphrase: "{{vault_backup_borg_passphrase}}" diff --git a/roles/kde-backup/templates/backup-spring.sh b/roles/kde-backup/templates/backup-spring.sh index c345fbc..fe69e3a 100755 --- a/roles/kde-backup/templates/backup-spring.sh +++ b/roles/kde-backup/templates/backup-spring.sh @@ -1,37 +1,41 @@ #!/bin/bash LOCATION=/root/{{backup_directory}} # Backup databases for DATABASE in `mysqlshow | grep -v "information_schema" | grep -v "performance_schema" | grep -v "mysql" | tail -n+4 | awk '{print $2}'`; do mysqldump --opt --quick --single-transaction --skip-extended-insert --events --create-options --set-charset $DATABASE > $LOCATION/db.$DATABASE.`date +%w`.sql xz -f $LOCATION/db.$DATABASE.`date +%w`.sql done # Backup website contents # Don't include the Nextcloud - Borg will grab that tar -cJf $LOCATION/srv.`date +%w`.tar.xz -C / --exclude=srv/www/share.kde.org srv/www -# Backup Prosody -tar -cJf $LOCATION/prosody.`date +%w`.tar.xz -C / var/lib/prosody 2>&1 | grep -v "file changed as we read it" - -# Backup homes -tar -cJf $LOCATION/homes.`date +%w`.tar.xz -C / home 2>&1 | grep -v "file changed as we read it" | grep -v "socket ignored" - # Backup configuration and list of installed packages tar -czf $LOCATION/etc.`date +%w`.tgz -C / etc/ tar -czf $LOCATION/crontabs.`date +%w`.tgz -C / var/spool/cron/ dpkg -l > $LOCATION/dpkg.`date +%w` # Transfer backups to backup server lftp -f ~/bin/backup-options # Prepare to run Borg backups export BORG_PASSPHRASE='{{backup_borg_passphrase}}' {% set backup_creds = hetzner_backup_creds[hetzner_backup_host] %} BORG_SERVER="ssh://{{backup_creds.username}}@{{backup_creds.username}}.your-backup.de:23" # Backup Nextcloud export BORG_REPO="$BORG_SERVER/./borg-backups/nextcloud" borg create --compression zlib,5 --exclude-caches --exclude '*/thumbnails' ::'{hostname}-nextcloud-{now}' /srv/www/share.kde.org/ 2>&1 | grep -v "Compacting segments" borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + +# Backup Prosody +export BORG_REPO="$BORG_SERVER/./borg-backups/kdetalk-prosody" +borg create --compression zlib,5 --exclude-caches ::'{hostname}-kdetalk-prosody-{now}' /var/lib/prosody/ 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments" + +# Backup homes +export BORG_REPO="$BORG_SERVER/./borg-backups/spring-homes" +borg create --compression zlib,5 --exclude-caches ::'{hostname}-spring-homes-{now}' /home/ 2>&1 | grep -v "Compacting segments" +borg prune --prefix '{hostname}-' --keep-daily 7 --keep-weekly 4 --keep-monthly 6 2>&1 | grep -v "Compacting segments"