diff --git a/modules/nixos/homelab/restic.nix b/modules/nixos/homelab/restic.nix index 41fd522..82688b9 100644 --- a/modules/nixos/homelab/restic.nix +++ b/modules/nixos/homelab/restic.nix @@ -27,9 +27,9 @@ "--exclude-caches" ]; timerConfig = { - OnCalendar = "hourly"; + OnCalendar = "*:00"; Persistent = true; - RandomizedDelaySec = "20m"; + RandomizedDelaySec = "15m"; }; }; diff --git a/modules/nixos/laptop/restic.nix b/modules/nixos/laptop/restic.nix index 73ea210..151f8a6 100644 --- a/modules/nixos/laptop/restic.nix +++ b/modules/nixos/laptop/restic.nix @@ -30,7 +30,7 @@ timerConfig = { OnCalendar = "*:40"; Persistent = true; - RandomizedDelaySec = "10m"; + RandomizedDelaySec = "15m"; }; }; diff --git a/modules/nixos/orac/restic.nix b/modules/nixos/orac/restic.nix index 56040f2..96a0cea 100644 --- a/modules/nixos/orac/restic.nix +++ b/modules/nixos/orac/restic.nix @@ -2,6 +2,27 @@ { + # Dump JuiceFS PostgreSQL metadata before backup + systemd.services."juicefs-metadata-dump" = { + serviceConfig = { + Type = "oneshot"; + User = "root"; + EnvironmentFile = "/etc/nixos/secrets/juicefs.env"; + }; + script = '' + ${pkgs.docker}/bin/docker exec postgres-for-juicefs \ + pg_dump -U death916 juicefs | ${pkgs.gzip}/bin/gzip > /root/juicefs-metadata.sql.gz + ''; + }; + + systemd.timers."juicefs-metadata-dump" = { + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "*:10"; + Persistent = true; + }; + }; + services.restic.backups.orac = { user = "root"; initialize = true; @@ -15,7 +36,6 @@ "/var/log/" "/etc/" "/mnt/myjfs/" - ]; exclude = [ @@ -36,7 +56,7 @@ timerConfig = { OnCalendar = "*:20"; Persistent = true; - RandomizedDelaySec = "10m"; + RandomizedDelaySec = "20m"; }; };