Como Usar O Crontab Com O PHP

Tu já percebeu como as coisas hoje em dia estão corridas?

São várias tarefas, vários eventos para desenvolver e se não prestarmos atenção, corremos o risco de deixarmos algo para trás.

Alguns profissionais que utilizam programas e ficheiros em desktop, utilizam o “Agendador de Tarefas” para não realizar suas atividades. E você que usa a Internet? Que recurso poderá usar?

Hoje estaremos falando um pouco sobre o “Crontab”, isto é: Um recurso disponível no Linux e também no CPanel, um dos mais conhecidos Paineis de Gerenciamento de Web Sites do mundo.

crontab

Não vamos entrar em detalhes quanto ao gerenciamento do Crontab no Linux, nem a seus recursos, mas daremos um exemplo básico de como você pode usar o PHP e melhorar suas atividades utilizando esta ferramenta.

Conhecendo O Crontab

Conforme falamos a pouco no início desta matéria, o Crontab do Linux segue o mesmo conceito do agendador de tarefas do Windows.

Se você desenvolve algum sistema, certamente precisa executar uma cobrança, avisos periódicos, entre outras funções.

Com o tempo, isso se torna cansativo fazer manualmente.

Por esse motivo, temos como usar o Crontab, pois essa ferramenta que é nativa do Linux e está disponível em nossos Painéis de Controle (CPanel), nos possibilita efetuar serviços programados na hora exata (hora, minuto, dia, semana ou mês).

Modo De Uso Do Crontab

A primeira vista, se você nunca usou o Crontab para executar tarefas, com certeza você vai estranhar o seu funcionamento, mas após se acostumar, não terá problemas.

O Crontab trabalha executando comandos agendados através de minutos, horas, dias, meses e dias da semana.

Vamos verificar um exemplo mais prático:

  • Para executar os Minutos: Você deverá informar no script números de 0 a 59 (para todo o minuto);
  • Para executar as Horas: Você deverá informar no script números de 0 a 23 (para toda hora);
  • Para executar dias do mês: Você deverá informar no script números de 0 a 31 (para todo dia);
  • Para executar o Mês: Você deverá informar no script números de 1 a 12 (para todo mês);
  • Caso seja de seu interesse executar os dias da Semana: Você deverá informar no script números de 0 a 7 (para todo dia da semana);

Após isso, execute o Comando, isto é: a tarefa que deverá ser executada através do Crontab.

Entendo se você disser: Puxa, complicou tudo…

Vamos para alguns exemplos práticos?

Executando Scripts De Hora Em Hora

Digamos que você queira agendar uma tarefa disponível no ficheiro “usando_crontab.php” (disponível em “/var/www”). Basta apenas executar a tarefa conforme o código a seguir:



00 * * * * /var/www/usando_crontab.php

OBS.: No evento acima, estamos programando o script “usando_crontab.php” para ser executado todos os dias, de hora em hora sempre que chegar ao minuto “00″.

Executando Scripts Diáriamente

Digamos que você queira executar o script diáriamente. Você precisará seguir esse formato:



02 4 * * * /var/www/usando_crontab.php

Executando Script Semanalmente

Para executar o script semanalmente, você precisa mudar apenas alguns detalhes (conforme código a seguir).



22 4 * * 0 /var/www/usando_crontab.php

Bem… é algo prático, mas… vamos matar todas as dúvidas analisando um gráfico?

Veja o código a seguir e pense em um horário para executar seu script.



    44 3 * 3-11 1-5 root /var/www/usando_crontab.php
     | | |   |   |   |     |
     | | |   |   |   |     +---- comando a ser executado (com a rota)
     | | |   |   |   +---------- usuário que executará o comando
     | | |   |   +-------------- dia da semana
     | | |   +------------------ mês do ano
     | | +---------------------- dia do mês
     | +------------------------ hora
     +-------------------------- minuto

Mais prático, não?

Como Usar O PHP?

Bem… a integração ao PHP é muito mais fácil e pede apenas 1 detalhe:

Antes de executar seu script, é necessário disponibilizar o caminho a seguir na primeira linha, para que o Crontab execute o arquivo PHP corretamente (conforme o exemplo a seguir):



#!/usr/bin/php

Bem… não precisa fazer muita coisa. Basta apenas você elaborar o seu script e agendar no Crontab.

No exemplo a seguir, o ficheiro disponibiliza no ficheiro “teste.txt” os horários em que executou tarefa no Crontab.



#!/usr/bin/php

<?php

file_put_contents("teste.txt", "Crontab rodou em: ".date(‘d/m/Y H:i’));

?>

Prático, não?

Execute suas atividades e faça os ajustes necessários!

Acredito que mesmo se você tiver pouco tempo de Programação web, não terá dificuldades para trabalhar com esta ferramenta.

Be Sociable, Share!

4 Comentários

  1. andreaamado

    Se eu executo o arquivo php ele adicina a tarefa ao arquivo txt,até aí tudo bem, mas o que vai fazer os dados ou seja as tarefas que estão escritas nesse txt serem executadas?
    Não entendi isso.
    Obrigado

  2. Olá André,

    O que fará o seu script ser executado será o Crontab do Linux.

    Para entender mais sobre este assunto e até como usar essa ferramenta nativa do Linux (que está disponível no Gerenciador CPanel), te recomendo a pesquisar na Internet a palavra Crontab e fazer alguns testes em seu Servidor.

    Ele é fácil de ser gerenciado, mas para isso é necessário haver um costume.

    Abraço,

    Quemuel Aquino

  3. Ricardo

    Como personalizar o titulo e remetente dos e-mails que são enviados pelo cPanel nos avisos que recebemos sempre que uma cron é executada e aparece da seguinte forma no email recepito Cron <email@server> php /home/usuario/public_html/cron_.php‏?

  4. carlos

    É possivel eu criar uma agenda anual ?? Tenho uma programação onde o meu servidor da o sinal em uma faculdade funciona direitinho porém quando é feriado tenho que desabilitar no dia que for feriado para que o sinal nao toque

Participa! Comenta... para carlos