From 942d2260992befd438bf89dc4267d9cd1f9c9743 Mon Sep 17 00:00:00 2001 From: clerie Date: Wed, 28 Jun 2023 18:09:03 +0200 Subject: [PATCH] modules/backup: support excluding paths --- hosts/krypton/backup.nix | 15 ++++++++------- modules/backup/default.nix | 7 +++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/hosts/krypton/backup.nix b/hosts/krypton/backup.nix index 59d2694..43237ce 100644 --- a/hosts/krypton/backup.nix +++ b/hosts/krypton/backup.nix @@ -9,16 +9,17 @@ "/var/lib" ]; exclude = [ - "/home/*/.local/share/Trash/" + "/home/*/.local/share/Trash/*" "/home/*/.config/*.log" "/home/*/.local/*.log" - "/home/*/.cache/" - "/home/*/.config/*[Cc]ache*/" - "/home/*/.mozilla/*/cache/" - "/home/*/.thumbnails/" + "/home/*/.cache/*" + "/home/*/.config/*[Cc]ache*/*" + "/home/*/.mozilla/*/cache/*" + "/home/*/.thumbnails/*" + "/home/*/.config/Element/Cache/*" - "/home/clerie/tmp/" - "/home/clere/Downloads/" + "/home/clerie/tmp/*" + "/home/clere/Downloads/*" ]; }; }; diff --git a/modules/backup/default.nix b/modules/backup/default.nix index 559fd59..9d5ce3b 100644 --- a/modules/backup/default.nix +++ b/modules/backup/default.nix @@ -40,14 +40,17 @@ let export RESTIC_PASSWORD_FILE=${jobPasswordFile} export RESTIC_REPOSITORY="rest:https://${targetUsername}:$(cat ${targetPasswordFile})@${targetOptions.serverName}${repoPath}" + export RESTIC_PROGRESS_FPS=0.1 restic snapshots || restic init - restic backup ${optionalString (jobOptions.exclude != []) (pkgs.writeText "clerie-backup-${jobName}-${targetName}-excludes" (concatStringsSep "\n" jobOptions.exclude))} ${escapeShellArgs jobOptions.paths} + restic backup ${optionalString (jobOptions.exclude != []) "--exclude-file ${pkgs.writeText "clerie-backup-${jobName}-${targetName}-excludes" (concatStringsSep "\n" jobOptions.exclude)}"} ${escapeShellArgs jobOptions.paths} restic check - echo "clerie_backup_last_successful_run_time{backup_job=\"${jobName}\", backup_target=\"${targetName}\"} $(date +%s)" > /var/lib/prometheus-node-exporter/textfiles/clerie-backup-${jobName}-${targetName}.prom + ${optionalString (config.clerie.monitoring.enable) '' + echo "clerie_backup_last_successful_run_time{backup_job=\"${jobName}\", backup_target=\"${targetName}\"} $(date +%s)" > /var/lib/prometheus-node-exporter/textfiles/clerie-backup-${jobName}-${targetName}.prom + ''} ''; } ) jobTargetPairs);