Erro: por que meu cron job não executa na hora marcada? (Guia prático para iniciantes)
Olá, querido(a) cliente da GeHost! 😊
Se você está aqui, provavelmente criou um cron job para automatizar algo no seu site — como atualizar dados, limpar arquivos temporários ou enviar e-mails — mas ele não está rodando na hora certa. Calma! Isso é bem comum, e hoje eu, seu Sensei da GeHost, te ajudo a descobrir o porquê, passo a passo, com linguagem simples e muito carinho. 💛
Dica do Sensei: Cron jobs são como alarmes no celular, mas para o servidor. Se o alarme não toca, pode ser que ele esteja desligado, mal configurado ou o celular em modo avião. Vamos ver qual é o “modo avião” do seu cron!
Passo 1: Verifique se o cron job está ativo no cPanel
Primeiro, vamos confirmar se o job foi criado corretamente. Acesse seu cPanel com suas credenciais normais.
Depois de logar, procure pela seção “Cron Jobs” — geralmente está no grupo “Advanced” ou “Automatização”.
Passo 2: Confira os horários e comandos
Um cron job só funciona se os horários estiverem corretamente formatados. Veja um exemplo de configuração correta:
- Minuto:
*(executa a cada minuto) - Hora:
10(executa às 10h) - Dia do mês:
*(todo dia) - Mês:
*(todo mês) - Dia da semana:
*(todo dia da semana)
Se você colocar algo como 15 10 * * *, ele roda às 10h15 todos os dias.
⚠️ Atenção: Se você colocar 0 24 * * *, o cron não entende — não existe hora 24! O máximo é 23. Isso é um erro comum!
Passo 3: Verifique se o caminho do comando está correto
Seu cron job precisa saber onde executar o comando. Por exemplo:
- Se for um script PHP, o caminho deve ser algo como:
/home/usuario/public_html/script.php - Se for um comando shell, como
rm /tmp/arquivo.txt, o caminho deve ser absoluto.
💡 Dica do Sensei: Use o Gerenciador de Arquivos para confirmar o caminho exato do seu arquivo.
Passo 4: Use o caminho completo do PHP (ou do interpretador)
Um erro frequente é usar apenas php script.php no cron. O sistema não sabe onde está o PHP. Você deve usar o caminho completo:
/usr/local/bin/php /home/usuario/public_html/script.php
👉 Como descobrir o caminho? Acesse o terminal via SSH (se tiver acesso) e digite:
which php
Se não tiver acesso ao SSH, use o “PHP Info” no cPanel ou peça ao suporte da GeHost.
Passo 5: Verifique se o arquivo tem permissão de execução
Seu script precisa ter permissão para rodar. No Gerenciador de Arquivos, clique com o botão direito no arquivo e selecione “Editar” ou “Propriedades”.
Verifique se a permissão está como 755 (ou pelo menos 700). Isso permite que o sistema execute o arquivo.
Passo 6: Confira o histórico de execução (se disponível)
Alguns servidores mostram um log de execução. No cPanel, vá em Cron Jobs e veja se há uma opção como “Logs” ou “Ver histórico”.
Se não houver log, o cron pode estar rodando, mas sem saída visível. Nesse caso, adicione um comando de log no final do seu job:
/usr/local/bin/php /home/usuario/public_html/script.php >> /home/usuario/logs/cron.log 2>&1
Isso salva a saída (e erros) em um arquivo chamado cron.log, que você pode verificar depois.
Passo 7: Atenção ao fuso horário!
Seu cron job pode estar marcado para as 10h, mas o servidor está em outro fuso horário. A GeHost opera no fuso horário UTC-3 (Brasil). Se você colocar horários baseados em outro fuso, o job pode rodar fora do horário esperado.
👉 Recomendação: Sempre configure os horários considerando UTC-3.
Conclusão: O que fazer agora?
Se seu cron ainda não está rodando, siga esta checklist rápida:
- Verifique se o cron está ativado no cPanel.
- Confira se os horários estão corretos (ex: 24h não existe).
- Use o caminho completo do PHP, não apenas
php. - Garanta que o arquivo tem permissão de execução (755).
- Adicione um log para ver o que está acontecendo.
- Confira o horário do servidor (UTC-3).
Se depois de tudo isso ainda não funcionar, envie um ticket ao suporte da GeHost com o comando completo e o log — e eu, seu Sensei, te ajudo pessoalmente. 💬
✨ Lembre-se: todo erro é uma oportunidade de aprender. E você já está no caminho certo!