Crontab no Linux: EXEMPLOS de agendamento de tarefas
⚡ Resumo Inteligente
No Linux, o Crontab agenda a execução automática de comandos em horários, datas ou intervalos fixos, utilizando o daemon cron. Isso permite que administradores automatizem backups, limpeza de logs, notificações e manutenção rotineira do sistema sem intervenção manual.

Crontab, abreviação de tabela cron, é o arquivo de configuração e o comando que controla o cron. Linux Agendamento de tarefas. As seções abaixo explicam o formato do crontab, os comandos para adicionar, listar e remover tarefas, as strings especiais com o símbolo @ e exemplos de agendamento prontos para uso.
O que é crontab?
Cron tem seu nome derivado da palavra grega "Chronos", que significa tempo. É um processo do sistema (um daemon) que executa tarefas automaticamente em uma programação definida. Cron é um conjunto de comandos usado para executar tarefas agendadas regularmente. Crontab significa "tabela cron" e permite usar o agendador de tarefas cron para executar essas tarefas.
Crontab também é o nome do programa usado para editar esse agendamento. Ele é controlado por um arquivo crontab — um arquivo de configuração que lista os comandos do shell a serem executados periodicamente no horário especificado.
Por que usar tarefas cron?
Aqui estão os principais motivos para usar tarefas cron no Linux:
- Realiza backups programados de arquivos de log ou bancos de dados.
- Exclui arquivos de registro antigos automaticamente.
- ArchiVes e limpa tabelas do banco de dados.
- Envia e-mails de notificação, como boletins informativos ou lembretes de expiração de senha.
- Executa a limpeza regular dos dados em cache.
- Automatiza tarefas repetitivas em sistemas Unix e Linux.
- Automatiza a manutenção rotineira do sistema.
Como usar o cron no Linux?
O pacote do sistema Linux inclui um agendador de tarefas útil chamado crontab. O crontab é popular porque permite agendar a execução de tarefas como usuário root, o que facilita alterações automatizadas no sistema. Basta alterar a tarefa uma vez e aguardar até que ela seja executada novamente conforme o agendamento.
Formato Crontab do Linux
Uma entrada no crontab do Linux possui seis campos. Os cinco primeiros campos definem a hora e a data de execução, e o sexto campo contém o comando a ser executado.
Sintaxe do Crontab:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
O diagrama abaixo mapeia cada asterisco em uma entrada do crontab para o campo que ele controla, do minuto ao dia da semana, seguido pelo comando a ser executado.
Os cinco campos de tempo aceitam os seguintes valores: minuto (0–59), hora (0–23), dia do mês (1–31), mês (1–12 ou jan–dez) e dia da semana (0–7, onde 0 e 7 significam domingo). Você controla cada campo com estes caracteres especiais:
- Asterisco (*): Corresponde a todos os valores possíveis para esse campo.
- Defina um intervalo: Use um hífen para definir um intervalo, como 1-10, 30-40, jan-mar ou seg-qua.
- Defina vários intervalos: Use vírgulas para combinar intervalos, como abr-jun, out-dez.
Como adicionar/modificar o Crontab
Os usuários podem editar suas próprias tarefas crontab com o seguinte comando crontab. A opção -u direciona para o crontab de um usuário específico; portanto, forneça o nome de usuário, como mostrado nos exemplos posteriores:
$ crontab -u -e
O comando acima abre a configuração crontab pessoal do seu sistema, que você pode editar no seu editor de texto padrão.
Não é necessário reiniciar o cron; ele detecta suas alterações automaticamente. Para visualizar suas tarefas atuais, use:
$ crontab -l
Para remover suas tarefas do crontab, use o seguinte comando:
$ crontab -r
Para adicionar ou atualizar uma tarefa no crontab, use o comando abaixo:
crontab -e
Para editar o crontab de outro usuário, especifique o usuário com a opção -u:
crontab -u username -e
Como listar o Crontab
Para visualizar as entradas do crontab do usuário atual:
crontab -l
Para visualizar as entradas do crontab de um usuário específico:
crontab -u username -l
Exemplos importantes do Crontab
Aqui estão alguns exemplos importantes e prontos para uso de agendamentos crontab:
| Descrição | Command |
|---|---|
| Executa as diversas tarefas de agendamento. O comando abaixo é executado às 7h e às 5h diariamente. |
0 7,17 * * * /scripts/script.sh
|
| Executa uma tarefa cron a cada 5 minutos. |
*/5* * * * * /scripts/script.sh
|
| Executa a tarefa todos os dias Monday Às 5 da manhã. Isso é útil para tarefas semanais, como a limpeza do sistema. |
0 5 * * mon /scripts/script.sh
|
| Executa seu script em intervalos de 3 minutos. |
*/3 * * * * /scripts/monitor.sh
|
| Agenda uma tarefa cron que será executada em meses específicos — neste caso, fevereiro, junho e setembro. |
* * * feb,jun,sep * /script/script.sh
|
| Executa nos dias selecionados. Este exemplo executa a cada Monday e quarta-feira às 5h. |
0 17 * * mon,wed /script/script.sh
|
| Permite que o cron seja executado no primeiro sábado de cada mês. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
| Executa um script em intervalos de 6 horas, configurado conforme abaixo. |
0 */6 * * * /scripts/script.sh
|
| Agenda uma tarefa para ser executada duas vezes em Monday e terça-feira. Use as seguintes configurações para fazer isso. |
0 4,17 * * mon,tue /scripts/script.sh
|
| Agenda uma tarefa cron para ser executada a cada 15 segundos. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
| Agenda tarefas anualmente. @yearly é semelhante a “0 0 1 1 *”. Executa a tarefa uma vez por ano, à meia-noite do dia 1 de janeiro — útil para cumprimentos de Ano Novo. |
@yearly /scripts/script.sh
|
| Executa tarefas mensalmente. @monthly é semelhante a “0 0 1 * *”. Executa a tarefa à meia-noite do primeiro dia de cada mês. |
@monthly /scripts/script.sh
|
| Executa várias tarefas usando uma única entrada cron. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
| Agenda tarefas semanalmente. @weekly é semelhante a “0 0 * * 0”. Executa tarefas semanais, como a limpeza do sistema, à meia-noite de todos os domingos. |
@weekly /bin/script.sh
|
| Agenda tarefas diariamente. @daily é semelhante a “0 0 * * *”. Executa a tarefa uma vez por dia, à meia-noite. |
@daily /scripts/script.sh
|
| Executa tarefas em intervalos de uma hora. @hourly é semelhante a “0 * * * *”. Executa a tarefa no início de cada hora. |
@hourly /scripts/script.sh
|
| Executa tarefas na reinicialização do sistema. @reboot é útil para tarefas que o sistema deve executar na inicialização, permitindo que os trabalhos em segundo plano sejam iniciados automaticamente. |
@reboot /scripts/script.sh
|

