mirror/merlin
Andrew Wang c386fb2578 add service file and minor changes 2022-06-18 20:22:06 +00:00
..
arthur minor changes and add comments 2022-06-18 06:13:23 +00:00
cmd/arthur tiny fix 2022-02-04 00:28:07 -05:00
config add service file and minor changes 2022-06-18 20:22:06 +00:00
logger resolve most TODOs and simplify configuration 2022-02-25 23:23:06 -05:00
sync add service file and minor changes 2022-06-18 20:22:06 +00:00
test fix gitignore 2021-09-09 00:31:28 -04:00
.gitignore write merlin.go 2021-09-17 00:31:49 -04:00
README.md resolve most TODOs and simplify configuration 2022-02-25 23:23:06 -05:00
go.mod arthur and config testing and fixes 2021-12-15 01:18:52 -05:00
go.sum add trace for debian and archlinux 2022-06-04 18:45:10 -04:00
merlin-config-all.ini add trace for debian and archlinux 2022-06-04 18:45:10 -04:00
merlin-config.ini add service file and minor changes 2022-06-18 20:22:06 +00:00
merlin-go.service add service file and minor changes 2022-06-18 20:22:06 +00:00
merlin.go minor changes and add comments 2022-06-18 06:13:23 +00:00

README.md

Merlin

Build Status

This folder contains the code for merlin (which does the actual syncing) and arthur (which sends commands to merlin).

Check out the the mirror env for a testing environment

Nice Features To Add

  • detect if an rsync process is stuck (watch the stdout/stderr of the rsync processes)
  • set user and group in config

Completed

  • add bwlimit option for each rsync process
  • write process manager
  • save state (last attempted time, last attempted status) for each repo, and restore state on startup (e.g. use JSON/INI file for each repo)
  • calculate difference between the scheduled time of a job and the time at which it actually ran; log this
  • add all repos to merlin-config.ini (*)
  • handle termination signals in merlin (SIGINT, SIGTERM); close stopChan for this
  • listen on Unix socket in merlin
  • implement arthur.go (commands: sync and status)
  • allow dynamic reloading in merlin
  • use separate log file for each child process (currently sharing stdout/stderr with parent)
  • implement zfssync in merlin (just invoke the existing Python script)