Crontab na VPS Linux: como agendar tarefas passo a passo

Tempo de leitura: 3 minutos

Rodar um backup toda madrugada, limpar arquivos temporários semanalmente, disparar um script de monitoramento a cada 5 minutos — tudo isso não precisa de alguém lembrando de fazer na mão. O crontab é o agendador de tarefas nativo do Linux: define quando um comando roda, e o sistema cuida do resto sozinho, sem precisar de nenhum painel.

Este guia mostra como editar o crontab numa VPS Linux, entender a sintaxe de horário e evitar os erros mais comuns de quem está começando.

Como abrir o crontab para edição

Com acesso SSH à VPS (veja o guia de acesso à VPS Linux via terminal se ainda não tiver feito isso), o comando abre o editor de tarefas do usuário atual:

crontab -e

Na primeira vez, o sistema pode perguntar qual editor de texto usar — nano costuma ser a opção mais simples para quem não tem preferência. Cada linha desse arquivo representa uma tarefa agendada.

Entendendo a sintaxe: os 5 campos de horário

Toda linha do crontab segue o mesmo formato, com 5 campos de horário seguidos do comando a executar:

minuto hora dia-do-mes mes dia-da-semana comando
  • minuto: 0 a 59
  • hora: 0 a 23
  • dia do mês: 1 a 31
  • mês: 1 a 12
  • dia da semana: 0 a 7 (0 e 7 são domingo)

Um asterisco (*) num campo significa “qualquer valor” — é o coringa mais usado. Alguns exemplos práticos deixam isso mais claro:

0 3 * * * /caminho/do/script-backup.sh

Roda todo dia às 3h da manhã — os três últimos campos com * significam “todo dia do mês, todo mês, todo dia da semana”.

*/5 * * * * /caminho/do/script-monitoramento.sh

Roda a cada 5 minutos, o dia inteiro — a barra (/5) é a forma de dizer “de 5 em 5” dentro do intervalo do campo.

0 0 * * 0 /caminho/do/script-limpeza.sh

Roda toda meia-noite de domingo — o último campo (0) restringe ao dia da semana certo.

Cuidados antes de agendar de verdade

  • Sempre use o caminho completo do script e dos comandos internos a ele — o crontab não carrega as mesmas variáveis de ambiente (como o PATH) que uma sessão de terminal normal, então um caminho relativo pode simplesmente não ser encontrado.
  • Teste o script manualmente antes de agendar — um erro que passa despercebido rodando na mão vira um problema silencioso rodando de madrugada sem ninguém olhando.
  • Redirecione a saída para um arquivo de log, para poder conferir depois se rodou certo:
0 3 * * * /caminho/do/script.sh >> /var/log/meu-script.log 2>&1

Como ver as tarefas já agendadas

Para listar o crontab atual sem entrar no modo de edição:

crontab -l

Útil antes de agendar algo novo, para não duplicar uma tarefa que já existe.

Exemplos de uso combinando com outras rotinas da VPS

O crontab entra bem em qualquer rotina que precise repetir sozinha. Alguns exemplos que combinam com o que já foi coberto por aqui:

  • Verificar o uso de memória periodicamente e alertar se estiver alto — combina com a configuração de swap memory como rede de segurança.
  • Atualizar plugins do WordPress via WP-CLI numa janela de baixo tráfego, como já mostramos naquele guia.
  • Reiniciar um container Docker específico em horário programado, se o serviço tiver uma rotina de manutenção conhecida — veja como configurar Docker numa VPS Linux.

A sintaxe do crontab segue o padrão documentado no manual oficial do crontab (crontab(5)), então funciona da mesma forma em qualquer distribuição Linux.