+1 for duplicity. With the command line tool, you can also:
1- Easily go back in history (if you erased a file and want it again, it's here, in a previous incremental backup).
2- Ask to automatically make a full backup every X months.
3- Ask to automatically remove incremental and full backups older than X months
4- Select the granularity of the backup buckets (very useful to avoid having hundreds of files or if your connection is unreliable).
5- Upload a backup bucket while preparing the next one in parallel.
6- Use S3 reduced redundancy storage if you want (cheaper...)
Duplicity is written in Python and the API is easy to use if you want to rely on a Python script instead of a shell script.
The fact that you can use S3 was a deciding factor: it is a really cheap solution with a big ecosystem of tools and it should still be there in 10 years...
1- Easily go back in history (if you erased a file and want it again, it's here, in a previous incremental backup).
2- Ask to automatically make a full backup every X months.
3- Ask to automatically remove incremental and full backups older than X months
4- Select the granularity of the backup buckets (very useful to avoid having hundreds of files or if your connection is unreliable).
5- Upload a backup bucket while preparing the next one in parallel.
6- Use S3 reduced redundancy storage if you want (cheaper...)
Duplicity is written in Python and the API is easy to use if you want to rely on a Python script instead of a shell script.
The fact that you can use S3 was a deciding factor: it is a really cheap solution with a big ecosystem of tools and it should still be there in 10 years...