diff --git a/hosts/hastur/spec.nix b/hosts/hastur/spec.nix index b608d459f..33746591e 100644 --- a/hosts/hastur/spec.nix +++ b/hosts/hastur/spec.nix @@ -99,6 +99,21 @@ # xserver.enable = true; # xserver.displayManager.gdm.enable = true; # xserver.desktopManager.gnome.enable = true; + snapy.instances = [ + { + name = "persist"; + source = "/persist"; + keep = "2hr"; + calendar = "*:0/3"; + } + { + name = "var"; + source = "/var"; + keep = "2hr"; + calendar = "*:0/3"; + } + ]; + tailscale = { enable = true; openFirewall = true; }; dae.enable = true; diff --git a/modules/snapy.nix b/modules/snapy.nix index e716851f6..214f428eb 100644 --- a/modules/snapy.nix +++ b/modules/snapy.nix @@ -23,7 +23,7 @@ in }; keep = mkOption { type = types.str; - default = "3day"; + default = "3hr"; }; }; }); @@ -55,7 +55,6 @@ in description = "${s.name} snapy daemon"; serviceConfig = { - # DynamicUser = true; User = "root"; ExecStart = let btrfs = lib.getExe' pkgs.btrfs-progs "btrfs"; in @@ -63,17 +62,15 @@ in { name = "snapy"; script = '' + let date_format = "%Y-%m-%d_%H:%M:%S%z" + # take snapshot - date now | format date "%m-%d_%H:%M:%S" | ${btrfs} subvol snapshot -r ${s.source} $'${s.source}/.snapshots/($in)' + date now | format date $date_format | ${btrfs} subvol snapshot -r ${s.source} $'${s.source}/.snapshots/($in)' - date now - # rm out-dated - ls ${s.source}/.snapshots | filter { |i| ((date now) - $i.modified) > ${s.keep} } | each { |d| ${btrfs} sub del $d.name } + # clean outdated + ls ${s.source}/.snapshots | filter { |i| ((date now) - ($i.name | into datetime --format $date_format)) > ${s.keep} } | each { |d| ${btrfs} sub del $d.name } ''; })); - - # AmbientCapabilities = [ "CAP_SYS_ADMIN" "CAP_SYS_RESOURCE" "CAP_DAC_OVERRIDE" ]; - # CapabilityBoundingSet = [ "CAP_SYS_ADMIN" "CAP_SYS_RESOURCE" "CAP_DAC_OVERRIDE" ]; }; }; })