T14sAMDGen1: test recompilation with non-default CPU features
[julm/julm-nix.git] / hosts / pumpkin / backup.nix
index fbcc7937c8c9b254baee047dea9851100149b39a..1732786da7881708b74c35d71ccf2d042ba40b95 100644 (file)
@@ -1,7 +1,9 @@
-{ pkgs, lib, hostName, ... }:
+{ pkgs, lib, config, hostName, ... }:
 with builtins;
 {
-  # Take regular snapshots, and prune old ones
+  systemd.services.sanoid.serviceConfig.SupplementaryGroups = [
+    config.users.groups."disk".name
+  ];
   services.sanoid = {
     enable = true;
     extraArgs = [ "--verbose" ];
@@ -14,27 +16,58 @@ with builtins;
         daily = 7;
         monthly = 0;
         yearly = 0;
-        recursive = "zfs";
+        recursive = true;
       };
-      "off2/julm/backup/oignon" = {
+      "${hostName}/root/nix" = {
         autosnap = false;
-        autoprune = true;
+      };
+      "${hostName}/root/var/cache" = {
+        autosnap = false;
+      };
+      "${hostName}/root/var/log" = {
+        autosnap = false;
+      };
+      "${hostName}/root/home/julm/.cache" = {
+        autosnap = false;
+      };
+      "${hostName}/root/home/julm/.local" = {
         hourly = 0;
-        daily = 7;
+        daily = 1;
+      };
+      "${hostName}/root/home/julm/.mozilla" = {
+        hourly = 0;
+        daily = 1;
+      };
+      "off2/julm/backup/${hostName}" = {
+        autosnap = false;
+        autoprune = true;
+        hourly = 12;
+        daily = 14;
         monthly = 3;
         yearly = 0;
-        recursive = "zfs";
       };
     };
   };
+
   programs.bash.interactiveShellInit = ''
     backup-pumpkin () {
+      local -
+      set -x
+      dst=
+      if ! zpool list off2
+        then dst=aubergine.sp:
+        fi
       sudo syncoid --sshkey ~julm/.ssh/id_ed25519 \
         --create-bookmark --no-sync-snap --no-privilege-elevation \
-        --sendoptions=Rw --recvoptions=u \
+        --preserve-properties --preserve-recordsize \
+        --recursive --sendoptions=w --recvoptions=u \
         --exclude pumpkin/root/nix \
+        --exclude pumpkin/root/var/cache \
+        --exclude pumpkin/root/var/log \
+        --exclude pumpkin/root/home/julm/.cache \
         pumpkin/root \
-        aubergine.sp:off2/julm/backup/pumpkin
+        ''${dst}off2/julm/backup/pumpkin
+      zfs-fix-bookmarks pumpkin 2>/dev/null
     }
     mount-zfs-backup () {
       (