Comment by nickjj

11 hours ago

I evolved an rsync based backup script I've been using for almost a decade into https://github.com/nickjj/bmsu. I use this for backing up my life's work to an external drive but also syncing files to my laptop and phone too. It supports easy restoring as well.

No traffic ever leaves your local network and since it uses rsync under the hood the devices being sync'd to don't need to run anything other than SSH.

It's a single file shell script that has no dependencies except rsync. It's literally 1,000+ lines of defensive checks and validations to make sure you're not shooting yourself in the foot with rsync, and at the end the last line of code directly calls rsync. It doesn't try to reinvent the wheel by replacing rsync (it's an amazing tool).

Nice work, I like it.

  • Thanks, it's always fun when you're scratching your own itch.

    It's also a nice excuse to build in quality of life features that don't take a lot of time because you're using the thing all the time. My favorite one is the color coded rsync command output when DEBUG=1 is set so you can be absolutely sure your config values are producing the expected rsync flags and args.