various tools I have been using throughout the years
README.md

backup #

Backup helper for git, tarsnap, plakar and rclone. One command commits, archives or syncs a named set of directories.

Needs janet plus whichever backends you use.

Config #

Targets live in ~/.config/backup/config.janet. One Janet table. Paths may use ~/ and $VAR. See config.example.janet.

Omit rclone :targets to reuse the plakar sources. Set {} to disable rclone. Plakar stores and sources stay in plakar's own files.

Usage #

backup -l                       # list targets
backup git:notes                # commit, no push
backup -p git:notes             # commit, pull, push
backup tarsnap:notes            # timestamped archive
backup plakar:hoo               # back up every source to hoo
backup 'plakar:hoo:src,notes'   # back up two sources
backup rclone:notes             # copy to backup:notes
backup git -e notes             # all git targets except notes

One target per run. No target lists and exits.

Options #

  • -p, --push: commit, pull, push git targets
  • -f, --fetch: pull git targets first
  • -q, --quiet: hide child output
  • -l, --list: list targets
  • -e, --exclude: names to skip
  • -h, --help: usage

Failing targets get reported. The rest still run. Exit code is nonzero if anything failed.