Eu preciso fazer isso para executar em um arquivo cron em /etc/cron.d/
:
*/15 * * * * php -f /var/www/nextcloud/cron.php
...mas meus scripts não rodam. Suas permissões estão definidas para 644 e eu preciso criá-lo com um script Shell/BASH. Estou a usar:
echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" > /etc/cron.d/nccron
O que estou fazendo errado?
Existe uma maneira muito mais fácil (deve ser feito como
root
usuário)echo '*/15 * * * * www-data php -f /var/www/nextcloud/cron.php' > /etc/cron.d/wwwcron
Eu usaria aspas simples e não aspas duplas para evitar qualquer possibilidade de expansão do metassímbolo '*'.
www-data
é necessário fazer um crontab job em si, usandophp -f
como [user] dentro da linha cronjob:*/15 * * * * php -f /var/www/nextcloud/cron.php
(Estas são as instruções do Nextcloud. Eles acertaram, não tente hackear isso, no meu caso.)
www-data
deve executar o próprio cron job como um crontab (não/etc/cron.d
, et al)Normalmente, isso é configurado a partir do terminal:
Executando como
root
neste exemplo...crontab -u www-data -e
...adicione a string cronjob (acima).crontab -u www-data -l
... e deve corresponder.Mas, eu preciso disso feito como um script, não
crontab -e
no terminal.As vagas do crontab estão em:
/var/spool/cron/crontabs/USER
com permissões:
-rw------- ... www-data crontab
O script que funcionou:
Executando como
root
neste exemplo...Oh dia feliz!