Como agendar um cron job direto pela linha de comando (crontab -e) via SSH
Olá, viajante do código! 🌟 Seja bem-vindo(a) ao seu guia de confiança na GeHost, onde o conhecimento é compartilhado com carinho e clareza. Hoje vamos aprender um dos recursos mais poderosos da hospedagem: agendar tarefas automáticas usando o cron job via SSH.
Imagine que você tem um script que precisa rodar toda manhã às 8h — como um backup, atualização de dados ou limpeza de logs. Em vez de fazer isso manualmente todos os dias, o cron job faz isso sozinho, no horário que você definir. E o melhor? Você pode configurá-lo diretamente pelo terminal, com apenas um comando.
Este guia é para quem já tem acesso SSH ao seu servidor (um recurso disponível em planos mais avançados da GeHost) e quer dominar esse poder com tranquilidade. Vamos lá, um passo de cada vez.
Passo 1: Acesse seu servidor via SSH
Antes de tudo, você precisa estar conectado ao servidor. Para isso, use um cliente SSH como Putty (Windows), Terminal (macOS/Linux) ou Termius.
Abra seu terminal e digite:
ssh usuário@seu-servidor
Substitua usuário pelo nome de usuário fornecido pela GeHost (geralmente é o mesmo que o nome da sua conta no painel). Se não souber, verifique no painel do cliente.
Passo 2: Abra o editor de cron jobs com crontab -e
Uma vez conectado, digite o seguinte comando:
crontab -e
Este comando abre o arquivo de tarefas programadas do usuário atual. Se for a primeira vez, ele pode perguntar qual editor usar. Escolha vim (padrão) ou nano — se estiver com dúvidas, use nano por ser mais amigável.
Se aparecer uma tela com texto vazio, está tudo certo! Você está no editor de cron jobs.
Passo 3: Escreva sua tarefa programada
Para agendar uma tarefa, você precisa seguir um formato específico. Cada linha tem 5 campos separados por espaços, seguidos pelo comando a ser executado:
* * * * * comando
Os campos são:
- * Minuto (0–59)
- * Hora (0–23)
- * Dia do mês (1–31)
- * Mês (1–12)
- * Dia da semana (0–7, onde 0 e 7 são domingo)
Exemplo: Executar um script todos os dias às 8h da manhã:
0 8 * * * /home/usuario/public_html/meu-script.sh
Este comando roda o arquivo meu-script.sh no diretório público do seu site, todos os dias às 8h.
Dica importante: Sempre use o caminho completo (absoluto) do arquivo. Evite caminhos relativos como ./meu-script.sh.
Passo 4: Salve e saia do editor
Dependendo do editor:
- vim: Pressione Esc, digite :wq e aperte Enter.
- nano: Pressione Ctrl + O para salvar, depois Enter, e Ctrl + X para sair.
Se tudo estiver certo, o cron job será salvo automaticamente.
Passo 5: Verifique se o cron job foi cadastrado
Para confirmar que sua tarefa foi salva, digite:
crontab -l
Isso lista todas as tarefas programadas do seu usuário. Você deverá ver a linha que você acabou de adicionar.
Passo 6: Teste com um comando simples (opcional)
Para garantir que o cron está funcionando, teste com um comando simples que gera um arquivo de log:
* * * * * echo "Teste de cron executado em $(date)" >> /home/usuario/cron-teste.log
Este comando roda a cada minuto e escreve uma linha no arquivo cron-teste.log. Espere alguns minutos, depois verifique o arquivo com:
cat /home/usuario/cron-teste.log
Se houver mensagens, o cron está funcionando!
Importante: Cuidados e boas práticas
- Não use comandos que exigem interação (como
sudosem permissão prévia). - Evite tarefas muito pesadas em horários de pico (ex.: 10h da manhã).
- Use caminhos absolutos para scripts e arquivos.
- Verifique o log sempre que algo não funcionar. O sistema envia erros por e-mail se o script falhar (veja o e-mail do servidor).
Se precisar remover um cron job, use crontab -e novamente, edite a linha e salve. O cron automaticamente atualiza.
Quer saber mais?
Se tiver dúvidas sobre o funcionamento do cron, como usar variáveis, ou precisar de ajuda com scripts, entre em contato com nosso suporte técnico. Estamos aqui para ajudar, com paciência e empatia.
Seu servidor é seu aliado. Com o cron job, ele se torna um verdadeiro parceiro de trabalho. 🚀
Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*