Estou executando regularmente um script de shell por meio do Crontab que usa SSH para conectar-se a um servidor. Se eu executar esse script manualmente, ele será executado com sucesso. Na mesma sessão, o Crontab também o executará com sucesso. Mas se eu reiniciar minha máquina e esperar que o Crontab inicie o script, ele falhará.
Minha máquina e o servidor ao qual me conecto possuem chaves sem senha um do outro.
Comando SSH em meu script:
ssh -i /home/myuser/.ssh/id_rsa -t -t myuser@servername 'some-script-on-the-server'
Comando Crontab:
45 10 * * * root sudo -u myuser my-local-script
Pensei em resolver esse problema fornecendo o comando SSH, -i /home/myuser/.ssh/id_rsa
mas isso ainda não funcionou depois disso.
A saída de /var/log/syslog
é:
May 23 11:06:01 mycomputer CRON[1254]: (root) CMD (sudo -u myuser my-local-script)
May 23 11:06:01 mycomputer CRON[1252]: (CRON) info (No MTA installed, discarding output)
Qual é o problema?
Responder1
"Nenhum MTA instalado" significa que em seu script você pode querer enviar um email, mas nenhum MTA (Mail Transfer Agent) foi especificado. O daemon cron tenta de fato enviar saídas para você. Você pode instalar um MTA (como o postfix) ou, se as saídas não forem importantes, redirecionar para" /dev/null 2>&1"