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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top