Como diagnosticar problema de timeout em cronjob — Guia prático para clientes da GeHost
Olá, querido(a) cliente! 👋
Se você já se deparou com um cronjob que parece "travar" ou não executar no tempo esperado — talvez com mensagens como "Timeout", "Processo encerrado", ou simplesmente "nada aconteceu" — não se preocupe. Isso é algo comum, especialmente quando o script roda por muito tempo ou consome muitos recursos.
Como seu Sensei da GeHost, vou te guiar passo a passo, com calma, clareza e um toque de humanidade, para entender o que pode estar acontecendo e como resolver.
🔍 O que é um cronjob?
Um cronjob é uma tarefa automatizada que seu servidor executa em horários definidos — como limpar arquivos antigos, atualizar dados ou enviar e-mails. Ele é como um lembrete inteligente que o servidor não esquece.
Se ele demora demais ou trava, pode gerar um timeout — ou seja, o sistema desiste de esperar e o encerra.
Dica do Sensei: Timeout não é erro do seu código, mas sim uma medida de segurança do servidor para não ficar travado por tarefas muito lentas.
🛠️ Passo a passo: Como diagnosticar timeout em cronjob
-
Entre no cPanel — seu painel de controle. Use o link que já está cadastrado no seu e-mail ou no portal da GeHost.
-
Na tela principal do cPanel, localize o grupo “Cron Jobs”. Ele está na seção “Advanced”, geralmente perto de “Email” ou “Backup”.
-
Verifique a lista de cronjobs já configurados. Procure o que está com problema — ele pode estar com um comando longo, sem limite de tempo ou com falha de acesso a recursos.
Observe o comando completo que está sendo executado. Ele pode ser algo como:
/usr/bin/php /home/usuario/public_html/script.phpSe o script for muito pesado, ele pode demorar mais do que o permitido.
-
Verifique o tempo de execução do script — se o comando for um
php,pythonoubash, ele pode estar rodando por muito tempo.Para isso, você pode:
- Verificar o código do script (ex:
script.php) para ver se há loops infinitos, consultas muito lentas ou processos que não têm limite. - Adicionar logs no início e fim do script para saber quando ele começa e termina.
- Verificar o código do script (ex:
-
Verifique o limite de tempo do servidor — em ambientes compartilhados como o da GeHost, o tempo máximo de execução de um script é limitado (geralmente entre 30 segundos e 2 minutos).
Se o seu script demora mais que isso, ele será interrompido — e isso gera o timeout.
-
Teste o script manualmente — acesse o Gerenciador de Arquivos e execute o script diretamente via linha de comando (via SSH, se disponível) ou via navegador (para PHP).
Veja se ele trava ou demora muito. Isso ajuda a confirmar se o problema está no código ou no cronjob.
-
Divida o trabalho em partes — se o script faz muita coisa, ele pode estar sobrecarregando o servidor.
Exemplo: em vez de limpar 10.000 arquivos de uma vez, faça em lotes de 100 por vez. Assim, o cronjob não trava e o servidor não esgota recursos.
-
Verifique os logs de erro — o cronjob pode estar falhando silenciosamente.
Em alguns casos, você pode redirecionar a saída do cronjob para um arquivo de log, assim:
* * * * * /usr/bin/php /home/usuario/public_html/script.php > /home/usuario/logs/script.log 2>&1Depois, veja o conteúdo do arquivo
script.logno Gerenciador de Arquivos para ver o que está acontecendo.
💡 Dicas do Sensei para evitar timeout
- Use cronjobs com intervalos razoáveis — não execute tarefas pesadas a cada minuto. Prefira a cada hora ou dia.
- Evite scripts que não têm limite — sempre defina um tempo máximo de execução no código (ex:
set_time_limit(60);no PHP). - Monitore o uso de recursos — se o script consome muita memória ou CPU, ele pode ser interrompido mesmo antes do timeout.
- Considere usar serviços externos — para tarefas muito pesadas, o ideal é usar um serviço dedicado (como um servidor dedicado ou um serviço de fila como RabbitMQ ou AWS Lambda).
Leve em conta: O servidor da GeHost é compartilhado com outros clientes. Manter o tempo de execução curto ajuda a manter a estabilidade para todos — e isso é um ato de respeito ao ecossistema.
🤝 Precisa de ajuda?
Se você seguiu todos os passos e ainda não conseguiu resolver, não se preocupe!
Envie um ticket para o nosso suporte com:
- O comando do cronjob
- O nome do script
- Se possível, o trecho do código que está causando o problema
- Um link para o log (se tiver)
Nós vamos te ajudar com carinho — como um verdadeiro Sensei que cuida do seu projeto com dedicação.
Até a próxima, com energia positiva e código limpo! 💻✨