Rodar um script Python à hora marcada no cPanel

Automação e n8n··· 364 visualizações· 4 min de leitura

Para rodar um script Python todos os dias ou a cada hora no cPanel, a receita é: criar uma aplicação Python (só para ter o ambiente virtual com as suas bibliotecas) e fazer a tarefa cron chamar o Python desse ambiente, com o caminho completo do script. O erro mais comum é chamar o Python do sistema, que não tem as bibliotecas que instalou.

Passo a passo

1 Crie a aplicação em «Setup Python App». Escolha a versão do Python e uma pasta para a aplicação. Não precisa de ser um site: a aplicação serve de ambiente. Veja Python no cPanel: ambientes virtuais e pip.
2 Instale as bibliotecas dentro desse ambiente, com o pip da própria aplicação e um arquivo requirements.txt. Fora do ambiente, as bibliotecas não ficam onde o script as vai procurar.
3 Ponha o script numa pasta fora de public_html, e escreva nele caminhos completos para todos os arquivos que lê ou grava. O cron não inicia na sua pasta.
4 Descubra o Python do ambiente. Na tela da aplicação aparece o comando que o ativa, com um caminho que termina em bin/activate. Copie esse caminho e troque activate por python: é o Python desse ambiente.
5 Escreva a linha do cron: o caminho do Python do ambiente, um espaço, o caminho do script, e >> /home/CONTA/job.log 2>&1 no fim. Para o horário, veja exemplos de horários cron.
6 Teste a mesma linha à mão no Terminal, se a conta o tiver, antes de agendar.

O que costuma dar errado

Sintoma Causa O que fazer
ModuleNotFoundError só no cron O cron usou o Python do sistema. Use o caminho do Python do ambiente virtual.
Não encontra um arquivo de configuração Um caminho relativo. Caminhos completos, ou calcule a pasta a partir do próprio script.
O registro fica vazio ou só aparece no fim A saída é guardada em memória e só sai quando o programa acaba. Corra com python -u ou escreva flush=True nos print.
Duas execuções ao mesmo tempo A primeira ainda não acabou quando começa a segunda. Aumente o intervalo, ou use um arquivo de bloqueio.
As variáveis da aplicação não existem no cron As variáveis definidas na tela da aplicação são da aplicação, não do cron. Leia a configuração de um arquivo fora de public_html.
Scripts longos e pesados não pertencem a um plano compartilhado. Têm limites de CPU, memória e processos, e um script que os ultrapasse é interrompido. Divida o trabalho em partes curtas, ou use um VPS. Veja os limites de que ninguém fala.
Ponha uma linha de fim no registro, com a data e o resultado. Um registro que termina é a prova de que o script chegou ao fim e não foi cortado a meio.

Quer um plano com Python e cron incluídos no cPanel? Veja os planos de hospedagem.

Ver os planos

Onde ver na sua conta

As versões de Python que você pode usar são as que o seu cPanel oferece, então leia por lá: abra Setup Python App e comece a criar uma aplicação, e as versões disponíveis aparecem no campo da versão. Se o ícone Setup Python App não existir no seu cPanel, pergunte se o seu plano pode tê-lo, porque a receita acima depende dele. Para saber se a conta também tem linha de comando, procure Terminal ou SSH Access no cPanel: se um deles aparecer, a conta tem SSH. Se você precisa de uma versão específica de Python ou de controle total do ambiente, um VPS dá acesso total por SSH e permite instalar o que for preciso.

VEJA TAMBÉM

Python no cPanel: ambientes virtuais e pip

Tarefas cron: para que servem e como criar uma

Uma tarefa cron que não corre ou não envia nada: lista de verificação

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde R$ 36,30/mês (plano de 3 anos, com cupom)

Ver planos
Esta resposta foi útil? Sua resposta nos ajuda a melhorar este artigo.