rsync over SSH with cron in osx-environment
I want to automatically download files and folders from a Linux server to which I have an SSH (and FTP) account. The files shall be downloaded on a regular basis (I suppose a cron is the right tool to do so) onto an OS X machine.
I tried the following rsync command, which works fine:
rsync -avzbe ssh [email protected]:/www/htdocs/something/somefolder /Users/me/folder/foo/
However I have to enter the account's password every time (the SSH account on the server machine). The server is a managed one and I'm afraid I can't change the password.
Here are my questions:
- How do I bypass the entering of the password by storing it somewhere
- How do I automate this then correctly?
Solution 1:
- Run
ssh-keygen
and accept the defaults in every step cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh/; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh/; chmod 600 ~/.ssh/authorized_keys"
- Edit the crontab with
crontab -e
and add a line like20 4,16 * * * rsync -a [email protected]:somedir/subdir ~/somedir
Solution 2:
You have 2 options,
set up a passwordless login
https://stackoverflow.com/questions/459182/using-expect-to-pass-a-password-to-ssh (for remote hosts where you don't have permission to change OS files)