SSH và nâng cao 71 visualizações

Como agendar um cron job direto pelo terminal usando crontab

Ver no WHMCS

Como agendar um cron job direto pelo terminal usando crontab

Oi! Aqui quem fala é a Sensei, da equipe GeHost 🥋 Hoje vamos aprender uma mágica bem útil: fazer o servidor executar uma tarefa sozinho, no horário que você quiser, sem você precisar clicar em nada. Isso se chama cron job, e a ferramenta que usamos pra agendar é o crontab.

Parece assunto de "avançado" (e é 😄), mas prometo que, seguindo o passo a passo, você consegue tranquilamente.

O que é um cron job, afinal?

Pense no cron como um despertador do servidor. Você diz "todo dia às 3h da manhã, rode este comando" e ele cuida disso pra sempre, sem precisar de ninguém acordado pra apertar o botão. É muito usado para coisas como limpar arquivos temporários, rodar um script de backup do seu sistema ou disparar uma rotina automática do seu site.

Dica da Sensei: se a tarefa que você precisa é algo comum (tipo backup ou envio de e-mail), dá uma olhada primeiro se já não existe uma opção prontinha no seu painel. O terminal é o caminho para quem já tem um script específico pra rodar.

Passo 1 — Acesse o terminal via SSH

Para usar o crontab pelo terminal, você precisa entrar na sua hospedagem via SSH (é basicamente um "acesso remoto" por linha de comando). Nem toda situação/plano tem esse acesso liberado por padrão — se você tentar conectar e não conseguir, é só chamar o suporte da GeHost pelo painel.gehost.com.br que a gente confirma certinho pra você.

Com o acesso em mãos, conecte usando o programa de SSH que preferir (terminal do Mac/Linux, PowerShell, PuTTY, etc.) com o usuário e a senha (ou chave) que você tem cadastrados.

Passo 2 — Abra o editor de crontab

Já dentro do terminal, digite:

crontab -e

Na primeira vez, o sistema pode perguntar qual editor de texto você quer usar. Se aparecer uma lista com opções tipo nano e vim, escolha o nano — ele é bem mais simples pra quem está começando (as instruções de "salvar e sair" aparecem na parte de baixo da tela).

Passo 3 — Entenda a "receita" de um agendamento

Uma linha de cron sempre segue este formato:

minuto hora dia-do-mês mês dia-da-semana comando

São 5 números (ou asteriscos) antes do comando que você quer rodar. O asterisco * quer dizer "qualquer valor". Veja a ordem:

  1. Minuto — de 0 a 59
  2. Hora — de 0 a 23
  3. Dia do mês — de 1 a 31
  4. Mês — de 1 a 12
  5. Dia da semana — de 0 (domingo) a 6 (sábado)

Passo 4 — Exemplos práticos

Alguns exemplos pra você adaptar ao seu caso, trocando o comando pelo script que você quer rodar:

  • Todo dia às 3h da manhã:
    0 3 * * * /caminho/do/seu/script.sh
  • A cada hora, no minuto 0:
    0 * * * * /caminho/do/seu/script.sh
  • Toda segunda-feira às 8h:
    0 8 * * 1 /caminho/do/seu/script.sh
  • A cada 15 minutos:
    */15 * * * * /caminho/do/seu/script.sh
Dica da Sensei: sempre use o caminho completo do arquivo (ex.: /home/seuusuario/scripts/backup.sh) em vez de só o nome. O cron não sabe "onde você está" como quando você digita comandos direto no terminal, então ele precisa do endereço completinho pra achar o arquivo certo.

Passo 5 — Salve e confira

Depois de escrever sua linha, salve o arquivo (no nano: Ctrl + O pra salvar e Ctrl + X pra sair). Pronto, seu agendamento já está ativo!

Para conferir quais agendamentos você já tem cadastrados a qualquer momento, use:

crontab -l

Erros comuns (e como evitar)

  • Esquecer o caminho completo do script ou do programa que ele chama.
  • Confundir a ordem dos 5 campos (minuto vem sempre primeiro).
  • Rodar tarefas pesadas com muita frequência — se o script demora muito, prefira espaçar mais os horários pra não sobrecarregar sua hospedagem.
  • Não testar o script antes — rode o comando manualmente uma vez no terminal pra ter certeza de que ele funciona sozinho, antes de agendar.

Se travar em qualquer parte do caminho, pode chamar a gente pelo painel.gehost.com.br — a equipe de suporte te ajuda a revisar o agendamento com todo carinho. 🙌

Precisa de Ajuda?

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