A execução de um script py como www-data de um cronjob falha, mas é executado como um comando através de trabalhos de terminal

1

Então, eu tenho esse script que precisa ser executado a cada minuto, então eu configurei um cronjob para executar o script, digamos que o comando é:

/var/www/script.py

Eu uso o Webmin para configurar o cronjob e configurá-lo para executar como www-data. Eu também uso para ver a saída ao executar o comando.

Quando executo o cronjob, recebo um erro de permissão ao tentar criar um arquivo. Mas quando eu executo o seguinte comando, funciona.

sudo -u www-data /var/www/script.py

Alguém pode me dizer por quê?

Atualizar

O arquivo que está tentando criar chama-se runnning.txt e é colocado ao lado do script ( /var/www/running.txt )

O erro que o comando gera ao executar como um cronjob

Traceback (most recent call last):
  File "/var/www/lager-scanner/filer/pluk_script.py", line 237, in <module>
    with open(filename, "w+") as f:
PermissionError: [Errno 13] Permission denied: 'running.txt'

O conteúdo de /etc/crontab

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Saída de sudo -u www-data crontab -l

# * * * * * /var/www/script.py

Eu não sei como o webmin faz a sua coisa. É uma interface web, onde eu apenas seleciono o usuário para o qual o comando deve ser executado.

    
por Folkmann 01.06.2016 / 12:15

0 respostas