Pesquisa de site

Como executar script PHP como usuário normal com Cron


Cron é um utilitário poderoso para agendamento de tarefas baseado em tempo em sistemas operacionais do tipo Unix, incluindo Linux. Ele é executado como um daemon e pode ser usado para agendar trabalhos como comandos ou scripts de shell para realizar backups, agendar atualizações e muito mais, que são executados periódica e automaticamente em segundo plano em horários, datas ou intervalos específicos.

Uma limitação do cron é que ele assume que o sistema funcionará para sempre; portanto, é adequado para servidores que não sejam máquinas desktop. Além disso, você pode agendar uma tarefa em um horário determinado ou posterior, usando os comandos ‘at’ ou ‘batch’: mas a tarefa é executada apenas uma vez (não é repetida).

Leitura sugerida: Como agendar trabalhos usando Anacron no Linux

Neste artigo, explicaremos como permitir que um usuário normal do sistema execute ou execute um script PHP por meio de um agendador de tarefas cron no Linux.

Você pode agendar jobs usando o programa crontab (CRON TAble). Cada usuário pode ter seu próprio arquivo crontab composto por seis campos para definir um trabalho:

  • Minuto – aceita valores entre 0-59.
  • Hora – aceita valores entre 0-23.
  • Dia do Mês – armazena valores entre 1-31.
  • Mês do ano – armazena valores entre 1-12 ou janeiro-dezembro, você pode usar as três primeiras letras do nome de cada mês, ou seja, janeiro ou junho.
  • Dia da semana – mantém valores entre 0-6 ou Dom-Sábado. Aqui você também pode usar as três primeiras letras do nome de cada dia, ou seja, Dom ou Quarta.
  • Comando – comando a ser executado.

Para criar ou editar entradas em seu próprio arquivo crontab, digite:

crontab -e

E para visualizar todas as suas entradas do crontab, digite este comando (que simplesmente imprimirá o arquivo crontab na saída padrão):

crontab -l

No entanto, se você é um administrador de sistema e deseja executar um script PHP como outro usuário, você precisa agendá-lo no arquivo /etc/crontab ou no arquivo crontab do usuário root que suporta um arquivo extra para especificar o nome de usuário:

sudo vi /etc/crontab

E agende seu script PHP para ser executado assim, especifique o nome de usuário após a seção de tempo.

0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

A entrada acima executa o script /var/www/test_site/cronjobs/backup.php todos os dias à meia-noite como usuário tecmint.

Se você deseja executar o script acima automaticamente a cada dez minutos, adicione a seguinte entrada ao arquivo crontab.

*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

No exemplo acima, */10 * * * * representa quando o trabalho deve acontecer. A primeira figura mostra minutos – neste cenário, a cada "dez" minuto. As demais figuras mostram, respectivamente, hora, dia, mês e dia da semana.

Você também pode gostar de ler os seguintes artigos relacionados.

  1. Usando Shell Scripting para automatizar tarefas de manutenção do sistema Linux
  2. 12 Uso útil da linha de comando PHP que todo usuário Linux deve saber
  3. Como executar códigos PHP no terminal Linux
  4. 30 comandos Linux úteis para administradores de sistema

Isso é tudo! Esperamos que este artigo seja útil. Se você tiver alguma dúvida ou ideia extra para compartilhar sobre este tópico, use o formulário de comentários abaixo.