O daemon cron, ou Crontab, no Linux executa tarefas em segundo plano em horários específicos programados, é o equialente ao Agendador de tarefas (Task Scheduler) do Windows. Você basicamente pode executar qualquer comando do terminal com esse agendador.

Uma tarefa muito comum realizada com o Crontab é para automatizar backups, manutenção do sistema e outras tarefas repetitivas. A sintaxe é poderosa e flexível, para que você possa executar uma tarefa a cada quinze minutos ou em um minuto específico em um dia específico a cada ano.

Significado de Crontab

Não há uma explicação conclusiva, mas a resposta mais aceita é de Ken Thompson (autor do unix cron): O nome cron vem de chron, o prefixo grego para ‘tempo‘. E tab referencia tabela, uma tabela contendo crons: Timetable (Tabela de Tempo).

Sintaxe da Crontab

A sintaxe cron consiste em um grupo de 5 variáveis separadas por espaço: * * * * *. Cada grupo pode conter um ou mais números, separados por vírgula para valores unitários ou por um traço simples identificando uma faixa de intervalo, e por último o comando a ser executado. Veja abaixo alguns exemplos de sintaxes de agendamento:

minhoradia do mêsmêsdia da semanadescrição
*****Executa a cada minutos
021,2,3**Executa às 2hs todos os dias 1, 2 e 3 de cada mês
023**1-5Executa às 23hs de segunda a sexta
002512*Executa às 00hs do Natal

Crontab.guru

Um site que eu uso bastante para validar minhas crons: Crontab.guru. Nesse site você consegue visualmente ver como sua cron cai se comportar, é muito importante ter cuidado ao criar crons complexas pois isso pode levar a resultados catastróficos se configurado errado!

Criando um agendamento na Crontab

Vamos ao que interessa, vamos aprender a criar um agendamento. Como exemplo vamos criar uma cron que executa a cada minuto e escreve uma mensagem de log em um arquivo. A primeira coisa que devemos fazer é executar o seguinte comando:

$ crontab -e

Se essa for a sua primeira vez executando o comando, você precisará informar qual editor de texto deseja usar:

crontab -e
Escolha o editor padrão para sua Crontab

Eu gosto do editor nano, por isso selecionei a opção 1. Em seguida você um arquivo de texto com alguns comentários explicando como utilizar, podemos seguir para o final do arquivo, onde vamos criar o nosso agendamento.

crontab -e
Comentários do arquivo Crontab

Vamos adicionar a seguinte linha no final do arquivo:

* * * * echo "Funcionou" >> ~/cron.log
crontab -e

Basicamente esse agendamento vai rodar a cada minuto adicionando uma linha no arquivo cron.log localizado na nossa pasta home. Para salvar a sua cron use o atalho Ctrl + O para salvar e fechar o arquivo, agora o seu agendamento já está vigente! Para verificar se ela está funcionando corretamente vamos usar o seguinte comando:

$ tail -f ~/cron.log
tail -f ~/cron.log

Se tudo ocorrer igual o esperado, após alguns minutos você verá algumas linhas com o nosso texto: “Funcionou”. Esse exemplo é bem simples, você pode executar qualquer comando aceito no terminal via Crontab.

0 0 voto
Nota do Artigo
Author

Um nerd nada tradicional… Desenvolvedor web full-stack, escritor amador e inventor nas horas vagas. Apaixonado por tecnologia e entusiasmado por projetos de código aberto!

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x