O SSH sem uma senha geralmente é feito com a autenticação de chave pública . Normalmente, você criptografa a chave privada com uma senha, mas como deseja executar um script de sincronização autônomo, recomendo que você crie as chaves como outro usuário e execute o script de shell como esse usuário.
No cliente:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
# Press enter twice when asked for a passphrase
Como o Mac não tem o ID de cópia do SSH, você precisa fazer o trabalho manualmente:
scp ~/.ssh/id_rsa.pub [email protected]:~
No servidor
mkdir ~/.ssh
chmod 700 ~/.ssh
# Append or copy public key to authorized keys file:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Um script de shell é um arquivo de texto com executável conjunto de permissões que começa com
#!/bin/sh
# you can then do any commands that you do manually, ex:
# (See levy's answer for the rsync command to use)
rsync /home/Anders/ 192.168.3.5:~/backup/location
Para executar um script periodicamente, você pode usar o cron . Digamos que salvamos esse script em /home/Anders/bin/sync.sh. Você então executaria:
env EDITOR=nano crontab -e
como o usuário que você deseja executar o script cron como.
No editor de texto que aparece, você deve digitar:
#Minute Hour Day Month Year Command
0 13 * * * /home/Anders/bin/sync.sh
O texto acima seria sincronizado todos os dias no 0º minuto da 14ª hora (começa a contar a partir de zero), ajustando-se às suas necessidades.
Outra opção poderia ser SSHFS Ou seja, você montaria e você poderia operá-lo como um diretório normal.