Add scheduled rsync copy jobs

This commit is contained in:
Mikei386
2026-06-15 17:15:27 +02:00
parent 2abfc8eb26
commit 6c795fd97d
15 changed files with 524 additions and 59 deletions
+15
View File
@@ -91,3 +91,18 @@ func TestBackupCPUCoresRange(t *testing.T) {
t.Fatal("excessive CPU limit accepted")
}
}
func TestRsyncJobDoesNotRequireRepository(t *testing.T) {
c := DefaultConfig()
c.Jobs = []Job{{SchemaVersion: 1, ID: "rsync-job", Name: "Mirror", Type: JobRsync, Enabled: true, Sources: []Source{{Path: "/mnt/user/data"}}, Rsync: RsyncOptions{Target: "/mnt/remotes/backup", Overwrite: true}}}
if err := ValidateConfig(c); err != nil {
t.Fatalf("valid rsync job rejected: %v", err)
}
}
func TestRsyncJobRejectsOverlappingPaths(t *testing.T) {
job := Job{SchemaVersion: 1, ID: "rsync-job", Name: "Mirror", Type: JobRsync, Sources: []Source{{Path: "/mnt/user/data"}}, Rsync: RsyncOptions{Target: "/mnt/user/data/copy"}}
if err := ValidateJob(job); err == nil {
t.Fatal("rsync target inside source accepted")
}
}