Como abrir automaticamente um URL em horários específicos a cada dia

1

Estou usando o kubuntu 14.04. Eu instalei o cron usando o sudo apt-get install cron, e então eu criei este arquivo no IDLE, chamado openurl.py .

#!/usr/bin/env python

import webbrowser

webbrowser.open('http://eample.com')

Em seguida, digitei chmod +x openurl.py no terminal para tornar o arquivo .py passível de execução. Se eu digitar ./openurl.py no terminal, o script funcionará.

depois, usando o inicializador de aplicativos de kickoff, cliquei nas configurações do sistema > agendador de tarefas > nova tarefa > então procurei pelo arquivo openurl.py e selecionei quando queria que ele fosse executado.

Se eu digitar crontab -e no terminal, isso será exibido:

#openurl
21 21 * * *     /home/craig/openurl.py


# File generated by KCron the Thursday 29 Jan 2015 21:20.

E então eu espero, e nada acontece. O que estou fazendo errado?

    
por Blue7 29.01.2015 / 22:42

1 resposta

3

O problema já foi resolvido aqui .

Altere o crontab de cron para iniciar seu interpretador Python preferido com o caminho do script como argumento:

21 21 * * * /usr/bin/python /home/craig/openurl.py

Lembre-se de que um link simbólico padrão apontará para a versão padrão do interpretador, o que pode não estar correto se o software for baseado na sintaxe 2.X de Python .
O daemon cron pode lançar o intérprete com direitos elevados, usar um interpretador restrito para tarefas críticas de segurança automatizadas .

EDITAR para cobrir uma fatia maior de problemas após a configuração do cronjob:

Para monitorar em tempo real os trabalhos feitos por cron e outros daemons do sistema, execute em um terminal:

tail -f /var/log/syslog

ou

tailf /var/log/syslog

(em alguns sistemas, o caminho do arquivo de log é diferente, como /var/log/cron.log )

Para redirecionar o OUTPUT de um cron job , insira um redirecionamento de shell para STDOUT no arquivo cronjob, como:

21 21 * * * /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log

Em um script Python , um comando como print('TEST') anexará a string TEST a test.log ; qualquer subprocesso simples também será redirecionado.
Basta verificar o arquivo para saber se o script funciona como esperado.

Por favor, sinta-se à vontade para comentar aqui se tiver mais perguntas e não se esqueça de pressionar a seta para CIMA da esquerda e marcar como Favorita se eu for de alguma ajuda.

Tenha um bom dia.

    
por Lorenzo Ancora 29.01.2015 / 23:26