NOTE: I found this similar question: Run rsync with root permission on remote machine. That doesn't answer my question. The answer there doesn't provide enough explanation for me to parse my own solution from it, either. So I'm asking my own question.
I'm the admin on the remote server and I want to use rsync to back up files to my local box.
Here's my rsync command:
$ rsync -avz email@example.com:/var/www/ /backups/Sites/MySite/
It mostly works. Login is via a keypair. I don't and can't use a password (EDIT: to login via SSH). Just a few files won't transfer due to permissions. I don't want to change those permissions.
Here's the error:
receiving file list ... done rsync: send_files failed to open "/var/www/webapp/securestuff/install.php": Permission denied (13)
I do not want to change the permissions on that file. It (and others like it) should not be readable (except by root).
This has to run in a cron job and I prefer a simple one-line solution using only the rsync command. The next choice would be a shell script I can call from the cron job. In no case can I manually log into the remote machine and become root (because I'll be sleeping when this runs ;)
So how can I use rsync to back it up to my local box? Thanks.