Add backup runner

master
bel 2020-02-02 03:36:57 +00:00
parent 274a14d9d1
commit c2ee5c2bc1
1 changed files with 37 additions and 0 deletions

37
main.go
View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"local/lastn/lastn"
"local/rssmon3/config" "local/rssmon3/config"
"local/rssmon3/handlers" "local/rssmon3/handlers"
"local/rssmon3/monitor" "local/rssmon3/monitor"
@ -8,6 +9,8 @@ import (
"log" "log"
"os" "os"
"os/signal" "os/signal"
"path"
"path/filepath"
"syscall" "syscall"
"time" "time"
) )
@ -37,6 +40,8 @@ func main() {
h := handlers.New(m.Outgoing) h := handlers.New(m.Outgoing)
go InterruptAfter(h.Run, sigc) go InterruptAfter(h.Run, sigc)
go EnqueueBackups()
signal.Notify(sigc, signal.Notify(sigc,
syscall.SIGHUP, syscall.SIGHUP,
syscall.SIGINT, syscall.SIGINT,
@ -54,3 +59,35 @@ func InterruptAfter(foo func() error, c chan os.Signal) {
} }
c <- syscall.SIGINT c <- syscall.SIGINT
} }
func EnqueueBackups() {
realpath, err := filepath.Abs(config.Values().Addr)
if err != nil {
log.Println("dir", config.Values().Addr, "not found, so no backups")
return
}
conf := lastn.Config{
N: 10,
Rclone: path.Dir(realpath) + "-backups",
Root: realpath,
Ns: "backups",
Store: "rclone",
Conf: "/dev/null",
}
log.Printf("backups conf: %+v", conf)
lastn, err := lastn.New(conf)
if err != nil {
log.Println("backups disabled:", realpath, ":", err)
return
}
ticker := time.NewTicker(time.Hour * 12)
if err := lastn.Push(); err != nil {
log.Println("backup failed:", err)
}
for _ = range ticker.C {
log.Println("backing up...")
if err := lastn.Push(); err != nil {
log.Println("backup failed:", err)
}
}
}