From d6e822edc2ef3695927c49c7f24e3c06fb3721f9 Mon Sep 17 00:00:00 2001 From: Benoit S Date: Mon, 1 Feb 2021 19:42:43 +0900 Subject: [PATCH] Add lxd-databases backup --- files/lxd-databases.sh | 12 ++++++++++++ setup-backup.py | 10 ++++++++++ templates/borgmatic.yaml.j2 | 1 + 3 files changed, 23 insertions(+) create mode 100644 files/lxd-databases.sh 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"