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
import (
"local/lastn/lastn"
"local/rssmon3/config"
"local/rssmon3/handlers"
"local/rssmon3/monitor"
@ -8,6 +9,8 @@ import (
"log"
"os"
"os/signal"
"path"
"path/filepath"
"syscall"
"time"
)
@ -37,6 +40,8 @@ func main() {
h := handlers.New(m.Outgoing)
go InterruptAfter(h.Run, sigc)
go EnqueueBackups()
signal.Notify(sigc,
syscall.SIGHUP,
syscall.SIGINT,
@ -54,3 +59,35 @@ func InterruptAfter(foo func() error, c chan os.Signal) {
}
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)
}
}
}