Add a module for utf8mb4 restic db dumps

This commit is contained in:
Andreas Zweili 2022-11-12 15:07:39 +01:00
parent 3b3324aa3f
commit 8c18ec5341
2 changed files with 60 additions and 1 deletions

View File

@ -0,0 +1,59 @@
{ custom
, path
, tag ? "home-dir"
, time
}: { config, pkgs, ... }:
{
imports = [
(import "${custom.inputs.self}/modules/telegram-notifications" { inherit custom; })
];
age.secrets.resticKey.file = "${custom.inputs.self}/scrts/restic.key.age";
systemd.timers."restic-backups" = {
wantedBy = [ "timers.target" ];
partOf = [ "restic-backups.service" ];
timerConfig = {
OnCalendar = time;
};
};
systemd.services."restic-backups" = {
serviceConfig = {
User = "root";
Type = "oneshot";
};
environment = {
RESTIC_PASSWORD_FILE = config.age.secrets.resticKey.path;
RESTIC_REPOSITORY = "rest:http://10.7.89.30:8000";
};
onFailure = [ "unit-status-telegram@%n.service" ];
script = ''
${pkgs.restic}/bin/restic backup \
--exclude-file=${custom.inputs.self}/modules/restic/excludes.txt \
--tag ${tag} ${path}
${pkgs.mariadb}/bin/mysqldump --default-character-set=utf8mb4 --single-transaction --all-databases | \
${pkgs.restic}/bin/restic backup \
--tag mariadb \
--stdin \
--stdin-filename all_databases.sql
${pkgs.restic}/bin/restic forget \
--tag home-dir \
--host ${config.networking.hostName} \
--keep-daily 7 \
--keep-weekly 5 \
--keep-monthly 12 \
--keep-yearly 75
${pkgs.restic}/bin/restic forget \
--tag mariadb \
--host ${config.networking.hostName} \
--keep-daily 7 \
--keep-weekly 5 \
--keep-monthly 12 \
--keep-yearly 75
'';
};
}

View File

@ -8,7 +8,7 @@ in
ip = "10.7.89.103";
inherit custom hostname;
})
(import "${custom.inputs.self}/modules/restic-server-mysql-client" {
(import "${custom.inputs.self}/modules/restic-server-mysqlutf8-client" {
path = "/home/andreas";
time = "01:30"; inherit custom;
})