Executando um cronjob como www-data

3

Meu servidor está rodando no Ubuntu e no nginx. Meu problema diz respeito ao Cron , eu gostaria de iniciá-lo (crontab) usando um arquivo - cron.txt , seu conteúdo:

* * * * * /usr/bin/php /var/www/html/test.php >> /var/log/cron.log

Se eu o executar usando um comando: crontab /var/www/html/cron.txt , ele funciona perfeitamente, o script test.php está sendo executado. Mas quando eu faço o mesmo, mas usando um script PHP (executando via navegador): exec('crontab /var/www/html/cron.txt'); , ele não funciona.

Verificando o cronjob atual pelo comando: crontab -l -u www-data , a linha do arquivo aparece, mas o Cron não faz o seu trabalho. Talvez esteja relacionado a alguns problemas de permissão? Porque só funciona executando como root. Existe uma maneira de forçar o Cron a fazer as tarefas do www-data também?

    
por BociucH 06.06.2017 / 21:08

2 respostas

3

Por favor, use /etc/crontab . Esse método de fazer tarefas agendadas permite adicionar um nome de usuário à tarefa. Será assim:

* * * * * www-data /usr/bin/php /var/www/html/test.php >> /var/log/cron.log

Você pode fazer nano /etc/crontab e adicionar a linha ao arquivo.

But when I do the same but using a PHP script (executing via browser): exec('crontab /var/www/html/cron.txt');, it doesn't work.

Se isso não funcionar, você provavelmente terá outro problema que o uso de "crontab". Por exemplo: você não precisa redirecionar? (ex: use > /dev/null 2>/dev/null & no final do seu comando exec?).

    
por Rinzwind 06.06.2017 / 21:13
0

Eu consegui o que eu queria, tudo sobre o código no meu post inicial é ok, a única coisa que eu deveria saber é que o usuário do www-data não tem permissão para escrever em /var/log , então eu tive nenhuma saída lá. E, além disso, no meu script PHP eu estava tentando criar um arquivo e escrever algo nele, o caminho absoluto é necessário, então deve ser parecido com:

dirname(__FILE__) . '/myfile.txt';

Após essas alterações, tudo funciona conforme esperado.

    
por BociucH 07.06.2017 / 07:45

Tags