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
- O 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 campodom
, 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.
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
(0xx11) 4861-3994
Comentários