Add backup runner
parent
274a14d9d1
commit
c2ee5c2bc1
37
main.go
37
main.go
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue