Jan 20, 2026
Bruno S.
8min Ler
Um cron job é um agendador baseado em tempo presente em sistemas Unix-like, como Linux e macOS. Ele serve para automatizar tarefas repetitivas — como backups, manutenção do sistema e execução de scripts — sem necessidade de intervenção manual.
O funcionamento é simples: você define quando algo deve rodar e qual comando será executado em um arquivo chamado crontab. A partir daí, o sistema cuida do resto, mantendo processos importantes rodando em segundo plano de forma consistente.
Para usar cron jobs de forma eficiente, é importante entender alguns conceitos básicos:
Um cron job (ou tarefa cron) é um utilitário que permite a usuários de Linux e Unix executar comandos ou scripts automaticamente em uma data e horário definidos. Em vez de rodar uma tarefa manualmente todos os dias ou semanas, você agenda uma vez, e o sistema executa tudo em segundo plano no momento certo.
Essa automação é especialmente importante na administração de servidores. Pense em alguém gerenciando um VPS: fazer backup de bancos de dados manualmente todas as noites às 3h da manhã não é viável. Um cron job assume essa tarefa de forma confiável, aumentando a eficiência e reduzindo erros humanos.
Alguns usos comuns de cron jobs incluem:
Um cron job é executado pelo cron daemon (crond), um serviço que roda continuamente em segundo plano e executa comandos definidos nos arquivos de agendamento, chamados de crontab.
A cada minuto, o daemon verifica esses arquivos para ver se existe alguma tarefa programada para aquele momento. Se houver, o comando é executado automaticamente, sem qualquer ação manual.
É importante diferenciar os dois tipos principais de arquivos de configuração:
A sintaxe do crontab define tarefas agendadas (cron jobs) usando uma única linha composta por cinco campos de data e hora, seguidos pelo comando que será executado. Além disso, operadores especiais permitem criar agendamentos mais flexíveis e precisos.
O formato básico de uma entrada no crontab é o seguinte:
minuto hora dia_do_mês mês dia_da_semana comando_a_executar
Os cinco campos de tempo definem quando um cron job será executado. O sistema lê esse agendamento sempre na mesma ordem, da esquerda para a direita.
| Campo | Descrição | Valores permitidos |
| Minuto | O minuto da hora em que o comando é executado. | 0–59 |
| Hora | A hora do dia no formato de 24 horas. | 0–23 |
| Dia do mês | A data específica do mês. | 1–31 |
| Mês | O mês do ano. | 1–12 ou JAN–DEZ |
| Dia da semana | O dia da semana. | 0–6, onde domingo = 0 (ou 7 em alguns sistemas) |
Importante! Tenha cuidado ao agendar tarefas em múltiplos servidores com fusos horários diferentes. Sempre verifique o horário local de cada servidor usando o comando date para garantir que o cron job será executado no momento esperado.
Os operadores do crontab permitem criar intervalos e padrões mais avançados dentro dos campos de tempo. As implementações Cronie e Vixie cron (as mais comuns) oferecem suporte a vários operadores e são padrão na maioria das distribuições Linux, como Ubuntu, Debian, RHEL, CentOS e Fedora.
Os operadores abaixo não funcionam no cron tradicional. Eles são usados em agendadores baseados em Java, como Quartz e Spring Boot, ou em serviços de nuvem, como o AWS EventBridge:
A maioria das implementações de cron permite combinar intervalos com incrementos. Por exemplo, 1-20/2 executa a tarefa a cada dois minutos durante os primeiros 20 minutos do período definido.
Os exemplos abaixo mostram como aplicar a sintaxe do crontab em tarefas reais do dia a dia.
| Sintaxe do Cron | Finalidade | Explicação |
| 0 0 * * 0 /root/backup.sh | Backup semanal | Executa o script de backup todo domingo à meia-noite. |
| 0 * * * 1 /root/clearcache.sh | Manutenção de servidor | Limpa o cache a cada hora, mas apenas às segundas-feiras. |
| 0 6,18 * * * /root/db-dump.sh | Snapshot do banco de dados | Gera um dump do banco duas vezes por dia: às 6h e às 18h. |
| */10 * * * * /scripts/monitor.sh | Monitoramento de uptime | Executa um script de monitoramento a cada 10 minutos. |
| 0 0 1,15 * * /scripts/payroll.php | Tarefa quinzenal | Roda o script de folha de pagamento nos dias 1 e 15 de cada mês, à meia-noite. |
| 30 2 * * * /usr/bin/apt update | Atualização do sistema | Verifica diariamente se há atualizações de pacotes às 2h30 da manhã, que geralmente é um horário de baixo tráfego. |
| * * * * /scripts/s1.sh; /scripts/s2.sh | Múltiplas tarefas | Executa mais de um comando no mesmo cron job, separando-os por ponto e vírgula. |
| 0 8 1-7 * * [ “$(date ‘+%u’)” = “1” ] && /scripts/report.sh | Relatório mensal | Gera um relatório às 8h nos dias 1 a 7 do mês, mas só executa o script se for segunda-feira. |
As special strings são atalhos que começam com @ e substituem a sintaxe tradicional com cinco campos. Elas tornam os agendamentos mais fáceis de ler e reduzem a chance de erros em tarefas comuns.
Veja as mais usadas:
Alguns exemplos de cron jobs usando special strings:
@daily /home/user/scripts/daily-cleanup.sh @reboot /usr/local/bin/start-my-app.sh @hourly /var/www/html/monitor.php
Importante! A diretiva @reboot é executada quando o cron daemon é iniciado — e não necessariamente quando o sistema operacional liga. Se o serviço do cron for parado e iniciado novamente sem reiniciar o sistema, os jobs com @reboot serão executados outra vez.
Administradores de sistema controlam quem pode criar e executar cron jobs usando dois arquivos localizados em /etc/: cron.allow e cron.deny.
Se nenhum dos dois arquivos existir, o comportamento padrão depende da distribuição Linux:
Por isso, é sempre recomendável verificar a documentação da sua distribuição ou testar o acesso ao cron com um usuário que não seja root.
Por exemplo, para permitir que apenas um administrador de banco de dados (dbadmin) agende tarefas, crie um arquivo cron.allow e adicione dbadmin a ele. Assim, você evita que outros usuários executem tarefas em segundo plano não autorizadas e consumam recursos do sistema.
Para configurar um cron job, acesse o terminal do sistema, confirme que o cron está instalado, crie ou edite um arquivo crontab com crontab -e e visualize as tarefas agendadas usando crontab -l.
Algumas tarefas podem exigir permissões elevadas ou acesso como root. Em outros casos, scripts recorrentes precisam ficar em diretórios específicos do sistema para funcionarem corretamente.
Para gerenciar cron jobs, você precisa acessar a linha de comando do seu servidor. Se você utiliza um servidor remoto ou VPS, conecte-se via SSH com um cliente como o PuTTY (no Windows) ou o Terminal (no macOS ou Linux).
Usuários de VPS da Hostinger também podem usar o terminal no navegador, disponível diretamente no painel do VPS no hPanel, o que facilita a configuração sem depender de ferramentas externas.


A maioria das distribuições Linux já vem com o cron instalado por padrão. Para confirmar se o serviço está ativo e em execução, verifique o status:
systemctl status cron

Se o cron não estiver instalado, você pode adicioná-lo usando o gerenciador de pacotes da sua distribuição.
sudo apt update sudo apt install cron
sudo dnf install cronie sudo systemctl enable crond sudo systemctl start crond
A forma principal de agendar tarefas é usando o comando crontab. Para criar um novo arquivo crontab ou editar um existente, execute:
crontab -e
Se ainda não existir um crontab associado ao seu usuário, o sistema cria um automaticamente.
Na primeira vez que você rodar esse comando, será solicitado que escolha um editor de texto, como nano ou vim. Para quem está começando, o nano costuma ser a opção mais simples.
Depois que o arquivo abrir, basta adicionar o cron job em uma nova linha, seguindo a sintaxe correta.

Antes de agendar qualquer tarefa, teste o script manualmente para garantir que ele funciona. Por exemplo, execute ./backup.sh diretamente via SSH. Se o script não rodar manualmente, ele também não vai funcionar quando for executado pelo cron.
Para visualizar os cron jobs configurados para o seu usuário, sem editar o arquivo, use a opção de listagem:
crontab -l

Se você precisar ver os cron jobs de outro usuário, execute o comando abaixo substituindo username pelo nome da conta desejada. Esse passo exige permissões de root ou acesso administrativo:
sudo crontab -u username -l
Alguns comandos — como atualizações do sistema ou alterações em configurações globais — exigem privilégios de root. A forma mais simples de agendar esse tipo de tarefa é adicioná-la diretamente ao crontab do usuário root:
sudo crontab -e
Qualquer comando definido no crontab do root é executado com permissões totais, sem necessidade de configurações extras.
Importante! Evite rodar tarefas como root sempre que possível. Se um script precisa acessar apenas arquivos ou diretórios específicos, considere ajustar a propriedade com o comando chown ou usar uma conta de serviço dedicada. Isso reduz riscos e melhora a segurança do sistema.
Para tarefas de manutenção geral que não precisam rodar em um minuto exato, você pode colocar scripts em diretórios padrão do sistema. O cron executa automaticamente scripts executáveis encontrados nesses locais:
Para que funcionem corretamente, os scripts nesses diretórios devem ter permissão de execução e seguir as regras do run-parts:
backup.sh será ignorado. Renomeie para backup.meu.script falha silenciosamente — um erro comum e difícil de identificar.Para remover todos os cron jobs do usuário atual, use a opção de remoção (-r):
crontab -r
Como esse comando apaga todas as tarefas imediatamente, o mais seguro é combiná-lo com a opção interativa -i, que pede confirmação antes de prosseguir:
crontab -ri

Importante! A flag -i só funciona quando usada junto com -r. Executar crontab -i sozinho não tem efeito.
Os cron jobs automatizam tarefas recorrentes ao combinar três elementos: o cron daemon (que roda continuamente), o crontab (que define o agendamento) e o comando ou script responsável pela execução. Essa automação é essencial para gerenciar sistemas com eficiência e lidar com rotinas sem trabalho manual.
Mas é importante lembrar: um cron job só é tão bom quanto o script que ele executa. O cron apenas dispara o comando no horário definido — quem faz o trabalho de verdade é o script. Se ele tiver erros, a tarefa vai falhar, mesmo que o agendamento esteja correto.
Por isso, depois de entender o que é cron job e como agendar tarefas, o próximo passo natural é aprender a escrever scripts Bash eficientes. Com isso, você consegue automatizar processos mais complexos e realmente úteis no dia a dia.
Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.