I had a backup script running from a server that'd login to my computer every day (if it was on) and copy all the changed files. An advantage is that malware cannot delete old backups (because the server logs in to my machine, not the reverse), and backups are stored off-site.
It'd create a hard-linked copy of the previous backup (pax) and then overwrite anything that changed (rsync). That way you get incremental backups, but restoring is as easy as copying the latest directory back.
Although the system was pretty easy and I still like the design, I stopped because 1) there are not a lot of VPS with large disk space that are cheap and 2) I hacked it together in Bash, so it wasn't super stable (spaces in paths etc) with little logging. I also tried with a raspberry pi, but that's local and was unstable. So I stopped.