Como agendar tarefas PHP no Cron do Cpanel
Um tutorial muito útil para agendamento de execussão de tarefas de scripts PHP pela Cron do Cpanel ou Linux
Oque é Cron?
O cron é uma ferramenta de sistemas Linux e Unix que permite a execução de comandos ou programas, agendados para um determinado dia/mês/ano/hora. No exemplo abaixo explicarei como agendar a execussão de um arquivo php pela Cron do Cpanel. Com esse tutorial podemos agendar disparos de email, envios por webservice, limpeza de arquivos, execussão de rotinas de backups,…
Abaixo explicarei o agendamento de tarefas do Cpanel, mas caso você não possua o painel de controle Cpanel em sua conta de hospedagem existem outras opções sem que tenha que mexer diretamente no Linux. Como o:
PHP Task Scheduler – PHP Cron
Ele é vendido por 9 dólares no codecanyon.net, com ele vc terá um sistema de execussão de scripts agendados como o do Cpanel, que é mais fácil do que o do core do Linux caso você não tenha muita prática com o Linux
Entendenda o funcionamento do Cron
No cpanel, lá em baixo existe a opção Tarefas Cron como na imagem abaixo
Lá encontraremos a tela assim
Explicação rápido sobre o uso do Cron
Baseando-se na imagem acima temos os capos em sequencia mm, hh, dd, MM, ss e script
Onde:
- mm = minuto(0-59)
- hh = hora(0-23)
- dd = dia(1-31)
- MM = mes(1-12)
- ss = dia_da_semana(0-6)
- script = comando a ser executado.
- Obs: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado. 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: Em qualquer posição pode-se usar o * (asterisco) quando não se importar com o campo em questão.
- Obs: Pode-se utilizar intervalos nesses campos. O caracter para intervalo é o – (hifen).
- Obs: Pode-se utilizar lista de valores nesses campos. O caracter para a lista é a , (vírgula).
- Obs: Qualquer texto colocado após o programa que será executado será considerado comentário e não será interpretado pelo cron
Então ao colocar os campos como abaixo, significará que todo dia as 23h irá executar o script
Na linha de comando do script, não podemos simplesmente colocar o caminho do site http://www.deivison.com.br/backup/backup.php
Temos que colocar o curl – s -o /dev/null antes para simular a entrada de um browser no script.
E por último, como executar o cron numa pasta bloqueada pelo .htpasswd?
Para dar a permissão de entrada à uma pasta protegida por .htpasswd precisamos colocar antes do dominio o login e a senha do .thpasswd, separados por dois pontos(:) e do dominio o @. Assim:
usuario:senha@deivison.com.br
Então a linha de comando ficará desse jeito:
curl -s -o /dev/null http://deivison:teste@deivison.com.br/backup/backup.php
Observação final! Recomend colocar os arquivos que serão executados pela Cron abaixo da pasta public_html, assim temos a certeza de que não haverá nenhuma falha e deixaremos nosso script protegido do acesso via web.
Até mais!






Adriano
Muito bom cara, eu estava tentando com o wget mas não funcionava.
Sabe dizer o pq?
Valdeir
Muito bom, valeu!
Fabiano Ramos SIota
Observação final! Recomend colocar os arquivos que serão executados pela Cron abaixo da pasta public_html, assim temos a certeza de que não haverá nenhuma falha e deixaremos nosso script protegido do acesso via web.
Como assim? onde coloco a página php com o script? ele não vai rodar no public_html pelo exemplo que tu deste?
Obrigado pelo comentário.
Deivison Arthur L. Serpa
isso o sistema ira executar o php abaixo do public