I use a tool called Duply, for both servers and my personal laptop, which is a scriptable bash front-end for duplicity. Duplicity is built on librsync, and there are other GUI tools for it too. There is even a clone of it for windows called Duplicati.
Its default config makes a full complete backup once a month, and then does 30 days of incremental snapshots. They are all stored in simple encrypted volumes, and include a metadata file to organize them. The volumes can be stored via FTP, SSH, AWS S3, etc. I used to backup to both a /backup folder locally for convenience, and also a separate remote system, twice daily. Recently, I started using AWS S3 instead. It was way cheaper than I expected, and to my surprise was much quicker than SSH. The storage cost was less than $1 per month.
The backups are formatted to allow you to pull out a single file from any period in the snapshots, on any system with the tool and the GPG keys.
As a side note, I also use Snappy to do hourly snapshot backups on my local BTRFS filesystem.