Tutoriais HostHP

Como criar um cronjob no cPanel – tarefas cron

Seja bem vindo a mais um tutorial HostHP, neste tutorial vamos apresentar como você pode estar efetuando tarefas agendadas pelo cron do cPanel.

Atenção, antes de prosseguir leia o tutorial completo! Evite transtornos.

Analisando o próprio cPanel de sua conta você já pode entender o que são os trabalhos crons e como eles funcionam.

Trabalhos cron
Os trabalhos cron permitem automatizar determinados comandos ou scripts no site. Você pode definir um comando ou um script para ser executado em uma determinada hora todos os dias, semanas etc. Por exemplo, você poderia definir um trabalho cron para excluir arquivos temporários a cada semana para liberar espaço em disco.
Aviso: Você precisa ter um bom conhecimento dos comandos Linux para usar trabalhos cron com eficácia. Verifique o script junto ao administrador de hospedagem antes de adicionar um trabalho cron.

E-mail cron

Envie um email com o resultado sempre que o trabalho cron for executado. menos »

Você pode fazer com que o cron envie um email cada vez que executar um comando que gera o resultado. Se não quiser que um email seja enviado para um trabalho cron individual, você poderá redirecionar a saída do comando para /dev/null. Por exemplo: mycommand >/dev/null 2>&1

Com esse comando vai estar direcionando a execução para o nulo anulando qualquer execução de comando.

Passo 1 – Acesse seu cPanel.

a- Acesse a barra de pesquisa e pesquise por trabalhos cron, ao localizar clique em cima.

b- Ao acessar você vai analisar algumas instruções que o cPanel ja vai estar dando a você como no exemplo no incio desse tutorial, abaixo segue um exemplo lembrando que o espaço onde contem em atualizar o e-mail do cPanel é para notificação da execução assim você receberá a notificação de ter tido sucesso ou falha do mesmo, podendo adicionar qualquer e-mail recomendamos que não adicione Hotmail, gmail é o mais recomendável.

c- Entendendo agendamento do trabalho cron.

As primeiras linhas, do arquivo, definem algumas variáveis usadas pelo cron. A segunda parte é a que exige um pouco mais de atenção.
Vamos usar tabela para explicar a linha:

m h dom mon dow user  command
Item Descrição
m ou minute minuto – determina a quantos minutos, dentro de uma hora, o comando será executado. Os valores aceitos vão de 0 a 59.
h ou hour hora – determina a que hora o comando será executado e sua especificação segue o padrão 24h. Portanto, aceita valores entre 0 e 23 (sendo que 0 é meia-noite).
dom ou day of month dia do mês – determina o dia do mês em que o comando será executado. Se quiser que a tarefa seja executada no dia 25 do mês, use o valor 25.
mon ou month mês – determina o mês em que o comando será executado. Aceita tanto valores numéricos referentes aos meses do ano, como alfabéticos (e. g. August).
dow ou day of week dia da semana – aceita tanto valores numéricos de 0 a 7, como caracteres: sun, mon, tue, wed, thu, fri e sat, que correspondem, respectivamente a domingo, segunda, terça, quarta, quinta, sexta e sábado.
user usuário – determina o usuário do sistema sob cujos privilégios o comando irá ser executado
cmd ou command comando – determina o comando a ser executado.

Notas:

  • Nos campos em que você não deseja fixar valor algum, pode inserir um asterisco ‘*’.
  • No campo dow, dia da semana, tanto 0 como 7 correspondem a domingo
  • Caso você determine valores para dom e para dow, o sistema não entra em conflito. O cron executa o comando nos dois casos
  • Vixie Cron aceita listas. O que significa que você pode enumerar especificamente, por exemplo, os dias da semana em que você deseja que um script seja disparado. Veja um exemplo:
    59 11 * * 1,2,3,4,5 user envio.php

    irá executar o script envio.php toda segunda, terça, quarta, quinta e sexta, às 11:59

  • Se você preferir, pode usar assim:
    59 11 * * 1-5 user envio.php

    onde 1 – 5 significa de segunda a sexta

  • Você também pode “pular” números. Veja como:
  • se você usar o valor */2 no campo dom, o comando irá rodar a cada 2 dias.
  • */5, no campo de horas, fará com que o comando seja executado a cada 5 horas
  • Os nomes dos meses e dos dias da semana não são sensíveis à caixa. Ou seja, tanto faz escrever Jul como jul. O importante é que você use apenas as 3 primeiras letras do dia da semana ou do nome do mês.
  • Você pode (e deve) inserir comentários para explicar o que está fazendo. Para isto, basta usar um ‘#’ no início da linha comentada.

Preparamos alguns exemplos abaixo para que possa compreender como pode estar executando seu agendamento.

Dentro do arquivo que se abre após o comando existe uma sintaxe conforme a seguir:

mm hh dd MM ss script

onde

mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-7)
script = comando a ser executado.
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado.
       O número 7 também refere-se ao domingo. 
       No caso de dia da semana funciona também as três primeiras letras 
       (em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se 
       importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo
       é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a
       lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será
       considerado comentário e não será interpretado pelo cron

Seguem alguns exemplos:

Todo dia de hora em hora (hora cheia)
  00 * * * * /bin/script
De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-59)
  00-59/5 * * * * /bin/script
Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
  15 10,12,16,18,22 * * * /bin/script
Nos primeiros cinco dias do mês às 19:25
  25 19 01-05 * * /bin/script
De segunda a sexta ao meio-dia e a meia-noite
  00 00,12 * * 1-5 /bin/script
Script rodar Segunda,Quarta,Sexta às 2 horas
   0 2 * * mon,wed,fri /bin/script
Script para rodar Terça,Quinta às 3 horas
   0 3 * * tue,thu /bin/script
Script para ser executado minuto a minuto
   */1 * * * * /bin/script

Os comandos fornecidos abaixo são exemplos de locais de script típicos. As seções em negrito dentro de cada comando precisarão ser substituídas pelo nome de usuário do cPanel e pelo nome do seu script.

Nota: talvez seja necessário ajustar / home / para / home/public_html/ dependendo do diretório inicial no qual sua conta reside. Para ver o diretório inicial da sua conta, simplesmente veja a coluna de estatísticas na página principal do cPanel da sua conta e procure o diretório inicial.
PHP

Comando para executar um PHP 7.0 cron job:

/opt/php70/bin/php /home/username/public_html/cron.php

Comando para executar um job cron de PHP 5.6:

/opt/php56/bin/php /home/username/public_html/cron.php

Comando para executar um job cron PHP 5.5:

/opt/php55/bin/php /home/username/public_html/cron.php

Comando para executar um PHP 5.4 cron job:

/opt/php54/bin/php /home/username/public_html/cron.php

Comando para executar um job cron PHP 5.3:

/opt/php53/bin/php /home/username/public_html/cron.php

Comando para executar um job cron PHP 5.2:

/opt/php52/bin/php /home/username/public_html/cron.php

Bandeiras opcionais são, por vezes, necessárias para um trabalho PHP cron:

php -q /home/username/public_html/cron.php

Momento Duvida

Qual a configuração cron que o cliente pode fazer sem estourar os limites de envios de e-mails por hora que por exemplo poderia ser 150 e-mails por hora ?
Você primeiro tem que analisar quantos e-mails tem, e organizar o agendamento de uma forma que não estoure este limite, segue um exemplo:
Efetuando e envio:

Neste exemplo ele é disparado uma vez a cada minuto, a cada uma hora por dia e mês de envio em um total de 60 execuções, então quanto mais comando você adicionar desta forma seria mais 60 e-mails enviados.
* * * * * php /home/user/dominio.com.br/robot.faturas.php
Cancelando execução:

Neste comando o cron não vai mandar email de execução, sendo redirecionado tudo para > /dev/null.
* * * * * php /home/user/dominio.com.br/robot.faturas.php > /dev/null
Lembrando que se tem 60 e-mails já utilizados por hora então se não tiver mais scripts a serem disparados não teria problema, mais a organização começa por ai.

Este foi mais um tutorial HostHP, deseja ter um tutorial de sua duvida publicado aqui ?
Entre em contato atendimento@hosthp.com.br e nós informe qual o próximo tutorial deseja que criamos!

Att,
Renato S. Ramos

www.hosthp.com.br

(0xx11) 4861-3994