diff --git a/files/lxd-databases.sh b/files/lxd-databases.sh new file mode 100644 index 0000000..8835d36 --- /dev/null +++ b/files/lxd-databases.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd /var/backups/databases +for i in $(lxc list --format csv -c n); do + if lxc exec $i -- which mysql; then + lxc exec $i -- mysqldump --opt --all-databases --force --events --hex-blob | cat > ${i}.sql + if + if lxc exec $i -- which psql; then + lxc exec $i -- sudo -u postgres pg_dumpall | cat > ${i}.sql + fi +done diff --git a/setup-backup.py b/setup-backup.py index 02140bf..dbf52b0 100644 --- a/setup-backup.py +++ b/setup-backup.py @@ -66,3 +66,13 @@ files.put( group='root', mode='700', ) + +files.put( + name='Push lxd-databases script', + src='files/lxd-databases.sh', + dest='/usr/local/bin/lxd-databases.sh', + user='root', + group='root', + mode='700', +) + diff --git a/templates/borgmatic.yaml.j2 b/templates/borgmatic.yaml.j2 index 5f55c8e..e24a70c 100644 --- a/templates/borgmatic.yaml.j2 +++ b/templates/borgmatic.yaml.j2 @@ -38,6 +38,7 @@ hooks: before_backup: - echo "`date` - Starting backup" - /usr/local/bin/lxd-export.sh + - /usr/local/bin/lxd-databases.sh after_backup: - echo "`date` - Finished backup"