fix(borgbackup): remove persistent timers to prevent post-resume failures
Removes persistentTimer from all borgbackup services and unnecessary network-online.target dependencies. Changes fuchsia offsite to 14:00 fixed schedule when system is reliably awake. Persistent timer catch-ups immediately after system resume caused failures due to services starting before network/system fully stabilized: - Onsite: DNS resolution failures (viridian.home.arpa) - Offsite: BorgBase connection refusals during SSH/borg handshake Fixed schedules provide reliable backups without catch-up complexity: - fuchsia offsite: 14:00 daily (typical awake time for desktop) - viridian offsite: midnight daily (always-on server) - All onsite: hourly (no catch-up needed) Offsite services retain wants/after dependencies on onsite completion to prevent race conditions on shared /btrfs-subvolumes snapshot paths. Network dependencies removed as fixed schedules run when system is already stable, eliminating timing issues with network-online.target.
This commit is contained in:
parent
9fb72e762b
commit
d21b36a1b0
4 changed files with 2 additions and 17 deletions
|
|
@ -82,11 +82,9 @@
|
|||
};
|
||||
|
||||
environment.BORG_RSH = "ssh -i /etc/ssh/ssh_host_ed25519_key";
|
||||
compression = "zstd,9";
|
||||
startAt = "daily"; # Daily at midnight
|
||||
|
||||
# Ensure backup runs on next boot if system was asleep
|
||||
persistentTimer = true;
|
||||
compression = "zstd,9";
|
||||
startAt = "14:00"; # Daily at 2pm when system is reliably awake
|
||||
|
||||
# Retention policy for daily remote backups
|
||||
prune.keep = {
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ in {
|
|||
|
||||
# Configure service to wait for completion before marking as active
|
||||
systemd.services."borgbackup-job-onsite" = {
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
};
|
||||
|
|
@ -82,9 +80,6 @@ in {
|
|||
compression = "zstd,9";
|
||||
startAt = "hourly";
|
||||
|
||||
# Ensure backup runs on wake if system was asleep
|
||||
persistentTimer = true;
|
||||
|
||||
# Match snapper retention policy
|
||||
prune.keep = {
|
||||
hourly = 24;
|
||||
|
|
|
|||
|
|
@ -104,9 +104,6 @@
|
|||
compression = "zstd,9";
|
||||
startAt = "daily"; # Daily at midnight
|
||||
|
||||
# Ensure backup runs on next boot if system was asleep
|
||||
persistentTimer = true;
|
||||
|
||||
# Retention policy for daily remote backups
|
||||
prune.keep = {
|
||||
daily = 7; # Keep 7 daily backups (1 week)
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@ in {
|
|||
|
||||
# Configure service to wait for completion before marking as active
|
||||
systemd.services."borgbackup-job-onsite" = {
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
};
|
||||
|
|
@ -108,9 +106,6 @@ in {
|
|||
compression = "zstd,9";
|
||||
startAt = "hourly";
|
||||
|
||||
# Ensure backup runs on wake if system was asleep
|
||||
persistentTimer = true;
|
||||
|
||||
# Match snapper retention policy
|
||||
prune.keep = {
|
||||
hourly = 24;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue