OS X + CRONTAB: Como você executa o SCP via Cron?
Pergunta
Isso funciona bem quando eu o executo manualmente:
#!/bin/bash
eval `ssh-agent`
ssh-add
/usr/bin/scp me@server:~/file ./
exit 0
No entanto, quando o cron executa, o arquivo nunca é tocado. Eu sei que as chaves ssh estão certas - substitua isso scp
com um ssh
E funciona bem.
Solução
Cron geralmente é executado como raiz, você testou esse script como raiz para garantir que as teclas SSH estejam no local correto que a raiz procura? Ou você tem seus sshkeys em seu perfil de usuário?
Outras dicas
Você também pode considerar o uso do RSYNC para esse processo, em vez de SCP'ing o arquivo como um script CRON.
Não tenho certeza de qual versão você está executando, mas em Snow Leopard Cron Jobs são executados como usuário (verifique com whoami
no seu script cron'd) ... pelo menos quando o usuário está atualmente conectado.