Como posso executar o script SH no Crontab?

2

Eu tenho um script simples em .sh:

#!/bin/bash
echo "Test1"
touch /home/john/test.txt
echo "Test2"

É executável e disponível (ugo + x). Se eu executar este script, ele funciona como eu esperava.

Mas se eu tentar executá-lo no crontab, então eu não obtenho nenhum resultado. Eu posso ver no log, esse trabalho começa e eu recebo (Nenhum MTA instalado, descartando a saída) .

AFAIK - esta mensagem não é erro? Significa apenas que eu não tenho um email (ou outro canal de saída)? Mas por que não há resultados do script? BTW - em CRONTAB eu uso a próxima linha:

30 * * * * sh file.sh >> /home/john/log.log

Alguma ideia?

    
por JanezKranjski 22.12.2016 / 06:03

2 respostas

4

Se o seu script é executável, então você não precisa ter o seu crontab executando /bin/sh file.sh .

Além disso, file.sh provavelmente não está no diretório onde o crontab é executado. Você prefere usar /path/to/file.sh

Redirecionando sua saída crontab, você também vai querer pegar stderr. Tendo pegado ambos stdout & amp; stderr, parece que me lembro crontab já não se queixa de sua capacidade de retransmitir a saída.

30 * * * * /path/to/file.sh >> /home/john/log.log 2>&1
    
por SYN 22.12.2016 / 07:46
0

Obrigado a todos, com suas sugestões, eu encontrei um erro. Eu não usei caminhos completos em crontab e esta foi a razão.

    
por JanezKranjski 22.12.2016 / 08:48