Central de Ajuda

Guia da Central de Ajuda

Como criar um Cron Job no cPanel: sintaxe, frequência, logs e execução segura

Um Cron Job agenda comandos no servidor em horários definidos. É usado para filas, relatórios, renovação de cache, rotinas de aplicações e tarefas de manutenção. O agendador não “abre uma URL como um navegador” por padrão: ele executa um comando em ambiente não interativo, com caminho, versão do PHP e variáveis que podem diferir do site.

Antes de agendar

  • confirme na documentação da aplicação o comando oficial;
  • execute manualmente quando houver terminal autorizado;
  • use caminhos absolutos;
  • verifique se duas execuções simultâneas são seguras;
  • defina onde registrar saída e erros;
  • não coloque senha, token ou chave diretamente no comando exibido no painel.

Os cinco campos do cron

minuto hora dia-do-mês mês dia-da-semana comando
0      3    *          *   *             /caminho/comando
ExpressãoSignificado
*/5 * * * *a cada cinco minutos
0 * * * *no minuto zero de cada hora
30 2 * * *todos os dias às 02:30
0 8 * * 1segunda-feira às 08:00
0 4 1 * *dia 1 de cada mês às 04:00

O horário segue o fuso configurado no servidor. Não presuma o fuso do navegador; crie um teste e registre o instante real.

Como criar no cPanel

  1. Abra Advanced > Cron Jobs.
  2. Configure o e-mail de notificação apenas se a rotina gerar saída útil; volume alto pode lotar a caixa.
  3. Escolha uma predefinição ou preencha os cinco campos.
  4. Informe o comando completo, salve e confirme a linha listada.
  5. Após o primeiro horário, confira log, efeito esperado e consumo de recursos.

Exemplo com PHP CLI

/usr/local/bin/php -q /home/USUARIO/app/artisan schedule:run

O binário é apenas exemplo. Descubra o executável e a versão corretos no ambiente. Se o site usa uma versão e o cron chama outra, extensões e comportamento podem mudar. Para frameworks, siga a documentação da versão instalada.

URL via HTTP: use somente quando necessário

/usr/bin/curl --fail --silent --show-error https://exemplo.com/cron-endpoint

Um endpoint público pode ser acionado por terceiros. Proteja-o com autenticação apropriada, limite de origem e idempotência; não exponha segredo em URL ou log. Sempre que possível, prefira comando local fornecido pela aplicação.

Evite execuções sobrepostas

Se uma tarefa leva 12 minutos e roda a cada 5, várias instâncias podem concorrer, duplicar envios ou travar banco. Use o mecanismo de lock da aplicação ou uma trava segura, confirme encerramento em falha e defina timeout. Não mate processos aleatoriamente sem identificar PID, usuário e impacto.

Saída e log

Enquanto diagnostica, redirecione saída e erro para arquivo dentro de diretório protegido e faça rotação:

/caminho/comando >> /home/USUARIO/logs/rotina.log 2>&1

O caminho é ilustrativo. Não grave log dentro de pasta pública se ele puder conter dados ou caminhos internos. Depois de estabilizar, mantenha telemetria suficiente; enviar tudo para /dev/null elimina evidência importante.

Erros frequentes

  • command not found: binário sem caminho absoluto ou ambiente PATH diferente;
  • permission denied: arquivo sem permissão, proprietário incorreto ou diretório inacessível;
  • funciona no navegador, não no cron: diretório atual, PHP, variáveis ou usuário diferentes;
  • não roda no horário: expressão ou fuso interpretado incorretamente;
  • roda várias vezes: agendamento duplicado na aplicação, plugin e cPanel;
  • sem efeito e sem erro: saída descartada, lock antigo ou código encerra com sucesso indevido.

Segurança e desempenho

Use a menor frequência necessária. Proteja arquivos de configuração, valide argumentos e aplique princípio do menor privilégio. Rotinas intensivas devem evitar pico, mas “madrugada” pode coincidir com backups. Monitore CPU, memória, I/O, processos, duração e crescimento do log.

Se o agendamento já existe e falha, siga Cron no cPanel não executa. Consulte também logs do cPanel, limite de recursos e versão do PHP.

Referência oficial: cPanel — Cron Jobs.

Recursos relacionados

Continue com tutoriais, ferramentas e serviços relacionados ao diagnóstico.

cron-job, agendamento, crontab, php-cli, cpanel
Este guia resolveu sua dúvida? Seu retorno ajuda a priorizar as próximas revisões.
Atendimento técnico

Não encontrou o resultado esperado?

Abra um chamado e envie a mensagem de erro completa, o domínio ou serviço afetado, o horário do teste e capturas de tela sem senhas.