(I use keychain so I don't need to type any password etc ...)
Ok, então você precisa dizer ao programa em execução no seu cron job como encontrar o seu chaveiro.
O SSH procura um agente SSH (que keychain emula) por meio da variável de ambiente SSH_AUTH_SOCK
. Então você precisa definir essa variável de ambiente no seu crontab.
Em uma configuração típica, SSH_AUTH_SOCK
é um caminho para um soquete com um nome aleatório. Desde que você está usando chaves, você pode facilmente encontrar um nome alternativo para esse socket: chaveiro grava arquivos ~/.keychain
que contêm declarações de variáveis ambientais que estabelecem SSH_AUTH_SOCK
e outras variáveis semelhantes ( SSH_AGENT_PID
, GPG_AGENT_INFO
). Então, basta incluir o arquivo apropriado em seu cron job.
[email protected]
30 5 * * * . ~/.keychain/$(hostname)-sh; /home/user/backup.sh
(Aparte:.. Cron tem um built-in recurso para enviar e-mail com a saída do trabalho, de modo que você receber um e-mail apenas se o trabalho não produzir alguma saída Não há necessidade de mexer com | mail
)