Crontab não executa script python

1

Eu tenho o seguinte problema: meu script python 'hello world' não pode ser executado pelo crontab.

Se eu definir instruções de crontab assim:

* * * * * cd /home/ && /usr/bin/python /home/hello.py

O texto não aparece no terminal.

Mas se eu fizer isso:

* * * * * cd /home/ && /usr/bin/python /home/hello.py >> /home/log.txt

O Ubuntu anexa o texto 'hello world' ao log.txt

aqui está o meu script:

#!/usr/bin/env python
print('Hello World!')

O que estou fazendo de errado?

P.S. já leu este tópico Por que os scripts crontab não estão funcionando?

    
por Artem Andreev 03.04.2018 / 15:45

2 respostas

2

Seu script é executado pelo Cron e tudo funciona como é esperado. O Just Cron não foi projetado para produzir nada em um terminal. Então, IMO, a pergunta correta aqui deveria ser algo como: Onde a saída padrão fica dentro do Cron?

A menos que seja redirecionado ( > , >> ) ou canalizado ( | ) para outro programa, tudo o que normalmente será enviado para o STDOUT (se você executar um comando na linha de comando), incluindo todas as mensagens de erro, será enviado para a caixa de correio local do usuário que executa o Cronjob. Para enviar / receber esses e-mails, você deve aplicar uma configuração mínima, conforme descrito aqui: Como eu configuro o Cron para enviar e-mails?

A maioria das sugestões no propostas A duplicação explica como redirecionar a saída de um Cronjob para TTY ou janela de terminal, mas para obter a saída, você deve fazer login (nesse TTY ou janela de terminal) antecipadamente. Aqui estão alguns exemplos adicionais:

Além disso, neste caso:

  • cd /home/ não é necessário porque seu script não escreve nada lá, e o script é chamado pelo caminho completo.
  • /usr/bin/python não é neede, porque você diz ao sistema que é script Python pelo shebang #!/usr/bin/env python . Mas, neste caso, o arquivo deve ter permissões executáveis: chmod +x /home/hello.py .
por pa4080 04.04.2018 / 09:21
0

Você pode tentar isso!

* * * * * cd /home/ && /usr/bin/python /home/hello.py >> /dev/tty3

(ou seu tty, se não tty3)

    
por SETO 1989 03.04.2018 / 21:29