blob: 4b5af8495f1ce0682924ffa7750531a8741fd13f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
(define-module (kbg services mcron)
#:use-module (kbg)
#:use-module (kbg private-data)
#:use-module (guix gexp)
#:use-module (gnu)
#:use-module (gnu home)
#:use-module (gnu home services)
#:use-module (gnu home services mcron)
#:use-module (gnu services)
#:use-module (gnu packages)
#:use-module (gnu packages backup)
#:use-module (gnu packages guile-xyz)
#:use-module (mcron base)
#:use-module (mcron job-specifier)
#:export (mcron-service))
(define borg-backup-job
#~(job "0 * 0 0 0"
(lambda ()
(system (string-append borg "/bin/borg")
"create"
"--stats"
"--progress"
"--show-rc"
"--compression lz4"
"--exclude-caches"
"--exclude 'node_modules'"
"--exclude '/home/*/.cache/*'"
"--exclude '/home/*/tmp/*'"
"--exclude '/home/*/guixtest/*'"
"--exclude '/home/*/.var/*'"
"--exclude '/home/*/.config/Element/*'"
"--exclude '/home/*/.config/Signal/*'"
"--exclude '/home/*/.config/Slack/*'"
"--exclude '/home/*/.local/share/Zeal/*'"
"--remote-ratelimit 2048"
(string-append %borg-repository "::$(hostname)-$(uuidgen --time)"
"/home/kb/")))
"Borg Backup Creation"))
(define borg-backup-prune-job
#~(job "10 * 0 0 0"
(lambda ()
(system (string-append borg "/bin/borg")
"prune"
"--stats"
"--progress"
"--show-rc"
"--keep-hourly=24"
"--keep-daily=7"
"--keep-weakly=4"
"--keep-monthly=6"
"--keep-yearly=2"
"--prefix=$(hostname)"
%borg-repository))
"Borg Backup Pruning"))
(define mcron-service
(list (simple-service 'home-mcron
home-mcron-service-type
(list borg-backup-job borg-backup-prune-job))))
|