X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fduply_backup%2Fdefault.nix;h=846b1d472a6c0fc8ca9c7c31034c0f77e2c28875;hb=668ba4d439d3b60ade9f96fd158ed293ff211f60;hp=23de666cd243c2b94fe3bc91ca84dfefce6ae2e6;hpb=f7c27d313296485fd5f6d76a9264c26beef2eeaa;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/duply_backup/default.nix b/modules/duply_backup/default.nix index 23de666..846b1d4 100644 --- a/modules/duply_backup/default.nix +++ b/modules/duply_backup/default.nix @@ -16,7 +16,7 @@ let # Do a full backup after 1 month MAX_FULLBKP_AGE=1M - DUPL_PARAMS="$DUPL_PARAMS --exclude-other-filesystems --full-if-older-than $MAX_FULLBKP_AGE " + DUPL_PARAMS="$DUPL_PARAMS --allow-source-mismatch --exclude-other-filesystems --full-if-older-than $MAX_FULLBKP_AGE " # Backups older than 2months are deleted MAX_AGE=2M # Keep 2 full backups @@ -75,19 +75,21 @@ in system.activationScripts.backup = '' install -m 0700 -o root -g root -d ${varDir} ${varDir}/caches ''; - secrets.keys = lib.flatten (lib.mapAttrsToList (k: v: + secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (k: v: map (remote: [ - { + (lib.nameValuePair "backup/${varName k remote}/conf" { permissions = "0400"; - dest = "backup/${varName k remote}/conf"; text = duplyProfile v remote "${k}/"; - } - { + }) + (lib.nameValuePair "backup/${varName k remote}/exclude" { permissions = "0400"; - dest = "backup/${varName k remote}/exclude"; text = v.excludeFile; - } - ]) v.remotes) config.services.duplyBackup.profiles); + }) + (lib.nameValuePair "backup/${varName k remote}" { + permissions = "0500"; + isDir = true; + }) + ]) v.remotes) config.services.duplyBackup.profiles)); services.cron = { enable = true; @@ -99,7 +101,7 @@ in map (remote: [ '' touch ${varDir}/${varName k remote}.log - ${pkgs.duply}/bin/duply ${config.secrets.location}/backup/${varName k remote}/ ${action} --force >> ${varDir}/${varName k remote}.log + ${pkgs.duply}/bin/duply ${config.secrets.fullPaths."backup/${varName k remote}"}/ ${action} --force >> ${varDir}/${varName k remote}.log [[ $? = 0 ]] || echo -e "Error when doing backup for ${varName k remote}, see above\n---------------------------------------" >&2 '' ]) v.remotes