SSH & Avançado 46 visualizações

Como agendar tarefas complexas combinando cron com scripts em Python ou Node.js

Ver no WHMCS

Como agendar tarefas complexas combinando cron com scripts em Python ou Node.js

Olá, viajante do código! Seja bem-vindo ao seu novo guia de mestre na arte de automatizar tarefas no servidor — com o poder do cron e a criatividade do seu script em Python ou Node.js. Aqui, você vai aprender a fazer seu servidor trabalhar por você, sem precisar se lembrar de nada. É como ter um assistente digital, 24 horas por dia. Vamos nessa?

Entendendo o que é cron

Imagine um relógio que dispara uma ação em horários específicos. Esse é o cron — um agendador de tarefas no Linux. Ele é como um despertador inteligente para seu servidor. Com ele, você pode rodar um script todo dia às 3 da manhã, toda semana, ou até a cada 10 minutos.

Dica do Sensei: O cron é um aliado poderoso, mas atenção: não use horários muito precisos (como 00:00:01) se não tiver certeza do tempo de execução. Seu script pode não rodar no exato segundo que você quer.

Passo a passo: agendando um script com cron

  1. Escreva seu script em Python ou Node.js

    Antes de tudo, você precisa ter seu script pronto. Ele pode fazer qualquer coisa: limpar arquivos antigos, enviar e-mails, atualizar dados de um site, baixar informações de uma API, etc.

    Exemplo simples em Python (salve como limpa_cache.py):

    #!/usr/bin/env python3
    import os
    import shutil
    
    # Caminho da pasta de cache
    cache_dir = "/home/seu_usuario/public_html/cache"
    
    if os.path.exists(cache_dir):
        shutil.rmtree(cache_dir)
        print("Cache limpo com sucesso!")
    else:
        print("Pasta de cache não encontrada.")
    

    Para Node.js, um script simples (limpa_cache.js):

    #!/usr/bin/env node
    const fs = require('fs');
    const path = require('path');
    
    const cacheDir = path.join(__dirname, 'cache');
    
    if (fs.existsSync(cacheDir)) {
      fs.rmSync(cacheDir, { recursive: true });
      console.log('Cache limpo com sucesso!');
    } else {
      console.log('Pasta de cache não encontrada.');
    }
    
  2. Coloque o script na pasta pública do seu site

    Seu script precisa estar dentro da pasta public_html ou em uma subpasta dentro dela. Isso garante que o servidor possa acessá-lo.

    Exemplo: /home/seu_usuario/public_html/scripts/limpa_cache.py

  3. Dê permissão de execução

    Seu script precisa ser "executável". Para isso, no terminal (via SSH), execute:

    chmod +x /home/seu_usuario/public_html/scripts/limpa_cache.py
    

    Para Node.js:

    chmod +x /home/seu_usuario/public_html/scripts/limpa_cache.js
    
  4. Acesse o cPanel e abra o Cron Job

    Entre no painel do cliente: painel.gehost.com.br. No menu, vá para “Cron Jobs” (dentro de “Advanced”).

    Tela inicial do cPanel com o menu 'Advanced' destacado
  5. Defina a frequência e o comando

    Na tela de Cron Jobs, você verá campos como:

    • Minute (minuto)
    • Hour (hora)
    • Day of Month (dia do mês)
    • Month (mês)
    • Day of Week (dia da semana)

    Para rodar todos os dias às 3 da manhã, preencha assim:

    • Minute: 0
    • Hour: 3
    • Day of Month: *
    • Month: *
    • Day of Week: *

    Na caixa de comando, digite:

    /usr/bin/python3 /home/seu_usuario/public_html/scripts/limpa_cache.py
    

    Se for Node.js:

    /usr/bin/node /home/seu_usuario/public_html/scripts/limpa_cache.js
    

    ⚠️ Importante: Use o caminho completo do interpretador (como /usr/bin/python3 ou /usr/bin/node) — o sistema não sabe onde procurar se não for explícito.

  6. Salve a tarefa

    Clique em “Add New Cron Job” e espere a confirmação. Pronto! Seu script agora será executado automaticamente, conforme o agendamento.

Como testar se está funcionando

Depois de agendar, espere o horário marcado. Para testar imediatamente (sem esperar), você pode rodar o comando manualmente via SSH:

cd /home/seu_usuario/public_html/scripts
python3 limpa_cache.py

Se não houver erros, o script está funcionando. Se houver, verifique:

  • Permissões de execução (use chmod +x)
  • Caminho do interpretador (certifique-se de que python3 ou node está instalado)
  • Permissões de leitura/escrita na pasta

Pro tip do Sensei: Para saber se o cron está rodando, você pode fazer o script escrever um log. Exemplo:

echo "$(date): Cache limpo!" >> /home/seu_usuario/public_html/logs/cron.log

Assim, você pode verificar depois se a tarefa foi executada.

Exemplos de tarefas úteis

  • Limpar arquivos temporários a cada dia
  • Atualizar dados de um site com informações de uma API externa
  • Enviar e-mails automáticos de boletim semanal
  • Backup de banco de dados diário
  • Verificar se um serviço está ativo e reiniciá-lo se necessário

Importante: cuidados com segurança

Scripts agendados podem fazer coisas poderosas. Sempre:

  • Evite colocar senhas ou dados sensíveis diretamente no código
  • Use arquivos de configuração separados e com permissões restritas
  • Teste em ambiente de desenvolvimento antes de agendar em produção

Pronto! Você é um mestre do cron agora.

Com esse guia, você transformou seu servidor em um aliado inteligente. Agora, ele faz o trabalho pesado sozinho — e você pode focar no que realmente importa: criar, inovar e sonhar.

Se precisar de ajuda, lembre-se: o suporte da GeHost está aqui por 30 dias após a entrega. E lembre-se também: o CNPJ da empresa é 46.647.904/0001-04 — caso precise de documentos fiscais.

Até a próxima, viajante. Que seu código seja leve, seu cron seja fiel e sua jornada, produtiva. 🌟

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.