Answering your questions,
Rsnapshot, duplicity, attic, bup, rsync, tar are good tools.
Regarding rdiff-backup allowing uploading to an sftp server. It can upload via ssh. You need a bit more than just sftp access. From the documentation,
rdiff-backup /some/local-dir hostname.net::/whatever/remote-dir
Where hostname.net is the remote server.
Now, some questions you should ask yourself when doing this.
- Is this for an online backup or an offline backup?
- do you need incremental backups?
- do you need encryption?
- If you have things like databases, how will they behave while you're taking a snapshot? Should you create a dump before the actual backup?
- Is there value to data that's on RAM? Do you need to force anything to write to disk?
The more information you provide, the better we can help you.