I've spent a few hours with Bup and Attic. They both seem excellent for my trivial use-cases of backing up uploaded media and a daily database dump.

From the beginning I was leaning towards Attic simply because it requires python3 and I've been looking for an excuse to start treading those waters.

So far I haven't been dissapointed. Attic has been a breeze to setup and is very simple to use. Similar to Bup, it's is a deduplication backup program that does fast incremental saves forever and exposes a handy command-line interface.

I have my archives encrypted with 256-bit AES encryption and integrity is verified using HMAC-SHA256. The backups are stored remotely over SSH. Further, they can be mounted as drives and accessed to retrieve individual files. Super cool!

I was thinking I'd have to write my own script for a grand-father-son rotation scheme, but the prune command easily allows for something similar.

I've installed Attic on my hosting server in a virtualenv setup for python3, and symlinked the attic binary to /usr/local/bin so it's available for my deploy user (who will be running the backup script).

On the backups server (going along with @Stavros's suggestion for RamNode), I've installed Attic system-wide, since that's all that's going to be happening there.