From 0c80bdffd3beb43481d2938589b061d72572b17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 12 Oct 2024 16:23:52 +0200 Subject: Add database backup --- systems/backup-2/databases/postgresql_replication.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'systems/backup-2/databases/postgresql_replication.nix') diff --git a/systems/backup-2/databases/postgresql_replication.nix b/systems/backup-2/databases/postgresql_replication.nix index 5351a4f..b428533 100644 --- a/systems/backup-2/databases/postgresql_replication.nix +++ b/systems/backup-2/databases/postgresql_replication.nix @@ -127,19 +127,23 @@ in set -euo pipefail resume_replication() { - ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_resume();" >/dev/null || echo "impossible to resume replication" + sudo -u postgres ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_resume();" >/dev/null || echo "impossible to resume replication" } trap resume_replication EXIT - ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_pause();" >/dev/null || (echo "impossible to pause replication" && false) + sudo -u postgres ${hcfg.package}/bin/psql -h ${dataDir} -c "SELECT pg_wal_replay_pause();" >/dev/null || (echo "impossible to pause replication" && false) - ${hcfg.package}/bin/pg_dumpall -h ${dataDir} -f ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql + filename=${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql + sudo -u postgres ${hcfg.package}/bin/pg_dumpall -h ${dataDir} -f "$filename" + + mkdir -p "${cfg.base}/${name}/databases_latest_backups" + ln -f "$filename" "${cfg.base}/${name}/databases_latest_backups/postgresql.sql" ''; u = pkgs.callPackage ./utils.nix {}; cleanup_script = pkgs.writeScript "cleanup_postgresql_${name}" (u.keepLastNDumps "sql" backupDir 6); in [ - "0 22,4,10,16 * * * postgres ${backup_script}" + "0 22,4,10,16 * * * root ${backup_script}" "0 3 * * * postgres ${cleanup_script}" ]) cfg.hosts); }; -- cgit v1.2.3