crontab e cron tarefas

2

Eu coloquei dois arquivos no diretório /etc/cron.d/ :

O primeiro faz um novo post todos os dias às 00:00:

0 0 * * * php /var/www/site1/helper post:make

O segundo atualiza o post mais recente a cada 10 minutos

10 * * * * php /var/www/site1/helper post:update

Preciso fazer outra coisa para que esse trabalho seja executado com base no horário (por exemplo, a cada 10 minutos) ou eu tenho que fazer crontab job1 e crontab job2 ?

EDITAR : também instalei o cronie.

    
por Jürgen Paul 14.06.2012 / 11:46

4 respostas

13

Colocar arquivos no cron.d é suficiente. No entanto, sua última entrada deve ser:

*/10 * * * * php /var/www/site1/helper post:update

Caso contrário, será executado uma vez por hora, no 10º minuto.

    
por 14.06.2012 / 11:55
5

Além disso, adicione

> /dev/null 2>&1

no final (após o comando) para que o cron não envie spam com as saídas:)

    
por 14.06.2012 / 12:26
4

Os crontabs em /etc/cron.d/ exigem um nome de usuário no 6º campo, assim como /etc/crontab . Crontabs baseados no usuário em /var/spool/crontabs/ e via crontab -e não possuem um campo de nome de usuário.

A resposta de Halfgaar sobre o tempo do que corre a cada 10 minutos também está correta.

Atualmente, essas tarefas agendadas executam /var/www/site1/helper como o usuário php em vez de executar /usr/bin/php e passar os argumentos /var/www/site1/helper post:make . Esse trabalho funcionará se você tiver um usuário php , o arquivo for executável e possuir um shebang apropriado. (ou seja, #!/usr/bin/php como a primeira linha). Caso contrário, ele registrará um erro em /var/log/cron/log .

O exemplo abaixo os executa como o usuário httpd e tem um caminho explícito para o executável PHP. Você deve escolher um usuário apropriado.

0     0 * * *  httpd /usr/bin/php /var/www/site1/helper post:make
*/10  * * * *  httpd /usr/bin/php /var/www/site1/helper post:update
    
por 14.06.2012 / 12:17
3

Isto:

10 * * * * php /var/www/site1/helper post:update

Não será executado a cada 10 minutos, ele será executado no minuto 10 de cada hora (00:10, 01:10, ...).

Isso será executado a cada 10 minutos:

*/10 * * * * php /var/www/site1/helper post:update
    
por 14.06.2012 / 11:59