O trabalho Cron gera crontab.txt: não encontrado [fechado]

0

Tentando descobrir o (s) motivo (s) de que um script não está sendo executado corretamente no Cron.

Configure um shell para chamar um arquivo * .py a cada minuto com o seguinte (Removido abrindo e fechando # linhas):

* * * * * python /root/job.sh 

O job.sh executa um arquivo * .py que verifica um módulo de temperatura I2C e envia os resultados para Ubidots. Funciona bem manualmente. Tentei reiniciar o Cron (iniciar, ativar e reiniciar) e algumas outras variações, como adicionar nome de usuário e caminhos completos para job.sh.

Aqui está o script:

    #!/usr/bin/env python 
    python /root/temperature-monitor/main.py

O arquivo tem as seguintes propriedades (também tentou chmod a + x, u + x, 755, 666 e outros):

-rwx--x--x 1 root root 62 Jul 21 15:07 job.sh

Verificando o logread indica que o cron está sendo executado:

Fri Jul 21 15:38:00 2017 cron.info crond[3464]: USER root pid 3491 cmd /root/job.sh

Criei um arquivo de log e direcionei a saída para ele com o seguinte:

 * * * * * python /root/job.sh >/root/test1.log 2>&1

A saída no arquivo contém o seguinte:

-ash: crontab.txt: not found

Mas o crontab.txt está listado em / etc / crontabs como root (nome do arquivo) com o trabalho listado nele.

Alguma idéia sobre o que tentar em seguida? Só não precisa ter um script em execução em um loop infinito após a inicialização.

    
por user2421417 24.07.2017 / 00:56

2 respostas

0

De crontab você está chamando python para executar seu script de shell (que não é um script python). mude o python para sh (ou ash ou bash) e acho que você vai achar que funciona melhor.

    
por 24.07.2017 / 01:07
0

Você não precisa colocar python no crontab . É um script de shell e python é executado dentro do script. Como o script é executável e possui uma linha shebang, você pode executar o próprio script como um comando.

* * * * * /root/job.sh
    
por 24.07.2017 / 01:20