Linux na Web

Como agendar tarefas no Linux com o Crontab

Tempo de leitura: 4 minutos

O crontab, √© um programa que agenda tarefas nos Sistemas Operacionais Linux e √© bastante √ļtil para automatizar a execu√ß√£o de certos processos no sistema, voc√™ edita o arquivo onde precisa ser atendido alguns par√Ęmetros para executar um comando ou script. Onde √© executado no sistema o (daemon) servi√ßo cron, que √© encarregado de verificar a data e hora e se existe algum programa a ser executado, caso exista ele rodar√° na data e hora solicitada, neste post irei ensinar a entender os par√Ęmetros e os comandos que precisam ser executados. Primeiro iremos conhecer o arquivo do crontab.

Na imagem abaixo explico para que serve cada campo.

Quanto à edição do arquivo /etc/crontab, é importante considerar a utilização de alguns caracteres, os quais facilitarão o trabalho de agendamento:

‚ÄĘ √Č necess√°rio incluir uma linha em branco no final do arquivo para que o √ļltimo comando seja executado;
‚ÄĘ No campo que se refere aos dias da semana, o domingo pode ser representado pelo n√ļmero 0 ou 7;
‚ÄĘ No campo que se refere aos dias da semana, funciona tamb√©m as tr√™s primeiras letras (em ingl√™s) do dia da semana (sun,mon,tue,wed,thu,fri,sat);
‚ÄĘ Os campos devem ser separados por um ou mais espa√ßos ou tabula√ß√Ķes;
‚ÄĘ O asterisco (*) serve para especificar todo o intervalo dispon√≠vel nos campos de data e hora;
‚ÄĘ O h√≠fen (-) √© utilizado para especificar per√≠odos de execu√ß√£o, incluindo o valor inicial e final;
‚ÄĘ A v√≠rgula (,) pode ser usada para especificar uma lista de valores;
‚ÄĘ A barra (/) serve para especificar passos, ou seja, para inserir mais servi√ßos que ser√£o executados de acordo com o agendamento.

As tarefas que o usuário pretende agendar devem ser documentadas nas crontabs, que são tabelas verificadas a cada minuto pelo crond, com data e hora de execução indicadas para cada tarefa. As crontabs podem ser de usuário ou do sistema. O primeiro tipo fica armazenado no diretório /var/spool/cron/crontabs/<nomedousuario> e a crontab do sistema fica no /etc/crontab. Além disso, elas se diferem pelo fato de as crontabs de usuário trazerem a especificação de qual usuário irá executar a tarefa agendada. Para tarefas cuja hora exata não precise ser especificada, elas podem ser colocadas nos diretórios:

Para o usu√°rio comum executar tarefas atrav√©s de comandos cron ele precisa estar listado no arquivo: /etc/cron.allow, basta colocar o nome do usu√°rio, ou para impedir que o usu√°rio execute tarefas, coloque o usu√°rio no arquivo /etc/cron.deny. Em seguida iremos conhecer os par√Ęmetros do comando crontab :

Abaixo tem alguns exemplos √ļteis de crontab

Agora você irá compreender melhor o que falamos acima.

Agendar um cron para rodar todos dias as 2 horas da manh√£.

Agendar para executar uma tarefa duas vezes no dia.

Agendar um cron para executar uma tarefa em cada minuto.

Executar um cron para rodar todos os sábados às 8 horas da manhã.

 

Agendar um cron para rodar a cada 20 minutos.

Agendar um cron para rodar a cada 5 horas.

Agendar um cron para rodar de 3 em 3 meses às 8:00 da manhã.

Inclusive esta Crontab no post: Let’s Encrypt.

Agendar um cron para rodar sábado e domingo às 8 horas da manhã.

Este é um exemplo de como rodar em dias da semana especifico.

Agendar um cron para rodar no primeiro domingo de cada mês.

Para agendar um script para executar um script no primeiro domingo, n√£o √© poss√≠vel por par√Ęmetro de tempo, mas podemos usar a condi√ß√£o nos campos de comando para faz√™-lo.

Rodar v√°rias tarefas em um √ļnico cron.

Para rodar v√°rios scripts, separe utilizando ponto e virgula(;).

Programar tarefas utilizando o par√Ęmetro @[data].

Ficaria da seguinte forma:

Fazer backup da cron.

Restaurar o backup da cron.

Espero ter ajudado a compreender e entender como funciona o Crontab.

Referências:

Tecadmin.net

Tags:,
Sobre: 
SysOps - Entusiasta por Linux, fundou o site Linux na Web no intuito de ajudar a comunidade Linux com artigos que possa ajudar no dia-dia do profissional de TI, trabalho em um ambiente com práticas DevOps para automatizar e agilizar nas tarefas diárias. - Amo o que eu faço... Gosto de tudo que é relacionado a Tecnologia, principalmente se for Open Source hehe e Amo a minha Família!
%d blogueiros gostam disto: