I want to rsync files older than 2 days, syncs all files instead

Solution 1:

Natim is correct in that {} needs to be used to pass on the filenames to rsync. There is no need to switch to scp. Just use the {} with rsync as in:

find /path/backups/ -type f -mtime +2 -exec rsync -vPhd -e "ssh -p 512" {} --delete --ignore-existing me@host:/remote/path/server-backups/ \;

Note: I also changed

-mtime 2

to

-mtime +2

as you state files older than 2 days. You may need to tune this to your exact needs.