added backup to podman-mariadb
This commit is contained in:
parent
b93a119776
commit
74f5ff584d
1 changed files with 27 additions and 16 deletions
|
|
@ -61,6 +61,13 @@ in
|
||||||
example = "daily";
|
example = "daily";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
backupRetention = mkOption {
|
||||||
|
description = "The amount of backups to keep.";
|
||||||
|
type = types.int;
|
||||||
|
default = 28;
|
||||||
|
example = "2";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
@ -99,22 +106,26 @@ in
|
||||||
}) cfgs);
|
}) cfgs);
|
||||||
|
|
||||||
|
|
||||||
#systemd = mkMerge (mapAttrsToList (_: cfg: {
|
systemd = mkMerge (mapAttrsToList (_: cfg: {
|
||||||
# services."podman-mariadb-${cfg.database}-backup" = {
|
services."podman-mariadb-${cfg.database}-backup" = {
|
||||||
# description = "Backup of ${cfg.database} database";
|
description = "Backup of ${cfg.database} database";
|
||||||
# requisite = [ "podman-mariadb-${cfg.database}.service" ];
|
requisite = [ "podman-mariadb-${cfg.database}.service" ];
|
||||||
# serviceConfig = {
|
serviceConfig = {
|
||||||
# ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.podman}/bin/podman exec postgresql-${cfg.database} pg_dumpall -c -U ${cfg.user} | ${pkgs.zstd}/bin/zstd -o ${cfg.backupPath}/${cfg.database}/\$(${pkgs.coreutils}/bin/date +%%F_%%R).sql.zst'" ;
|
ExecStart =
|
||||||
# Type = "oneshot";
|
let
|
||||||
# };
|
retention = (toString cfg.backupRetention);
|
||||||
# };
|
in
|
||||||
# timers."podman-mariadb-${cfg.database}-backup" = {
|
''${pkgs.bash}/bin/bash -c "${pkgs.podman}/bin/podman exec mariadb-${cfg.database} /bin/bash -c 'MYSQL_PWD=$(cat $MARIADB_PASSWORD_FILE) mariadb-dump --all-databases -u${cfg.database}' | ${pkgs.zstd}/bin/zstd -o ${cfg.backupPath}/${cfg.database}/$(${pkgs.coreutils}/bin/date +%%F_%%R).sql.zst && find ${cfg.backupPath}/${cfg.database} -type f | sort | head -n -${retention} | xargs rm -v" '' ;
|
||||||
# timerConfig = {
|
Type = "oneshot";
|
||||||
# OnCalendar = cfg.backupInterval;
|
};
|
||||||
# };
|
};
|
||||||
# wantedBy = [ "podman-mariadb-${cfg.database}.service" ];
|
timers."podman-mariadb-${cfg.database}-backup" = {
|
||||||
# };
|
timerConfig = {
|
||||||
#}) cfgs);
|
OnCalendar = cfg.backupInterval;
|
||||||
|
};
|
||||||
|
wantedBy = [ "podman-mariadb-${cfg.database}.service" ];
|
||||||
|
};
|
||||||
|
}) cfgs);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue