Agendamento de Tarefas

Uma funcionalidade bastante importante para o administrador de sistemas é a possibilidade de agendar a execução de tarefas (por exemplo um script shell), de forma que ela execute de forma automática, na data e hora desejadas. No Linux isto é possível com a utilização do utilitário de nome cron que terá sua funcionalidade básica descrita a seguir.

Para se criar, listar ou remover agendamentos utilizamos o comando crontab com as seguintes opções:

Parâmetros: Cria, lista e remove agendamentos


Sintaxe : crontab [opções]

Opções (principais):

-e usuario: Para criar agendamento(s).
-l usuario: Para listar os agendamentos.
-r usuario: Para remover o arquivo de agendamentos.

Caso o usuário não seja indicado no comando, será considerado o usuário que está “logado” no monento.

Sintaxe do Arquivo Contrab

A sintaxe do arquivo onde agendamos as tarefas é particular do cron. Em cada linha do arquivo temos um agendamento, da seguinte forma:

#minuto hora dia mês dia-da-semana comando

Os valores possíveis para cada campo são:

minuto : 0 a 59
hora : 0 a 23
dia : 1 a 31
mês : 1 a 12
dia-da-semana : 1 a 7 
comando : Qualquer comando válido
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado. 
       No caso de dia da semana funciona também as três primeiras letras 
       (em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se 
       importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo
       é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a
       lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será
       considerado comentário e não será interpretado pelo cron

Exemplos

Executar backup todos os dias às 00:15hs

15 0 * * * /root/scripts/backup.sh

Executar backup todos os dias às 06:15hs

15 6 * * * /root/scripts/backup.sh

Executar backup no dia 1 de todos os meses às 06:15hs

15 6 1 * * /root/scripts/backup.sh

Executar backup todos os dias às 00:15hs, 06:15hs, 12:15hs, 18:15hs

15 0,6,12,18 * * * /root/scripts/backup.sh

ou

15 */6 * * * /root/scripts/backup.sh

Executar backup de segunda a sexta às 00:15hs, 06:15hs, 12:15hs, 18:15hs

15 */6 * * 1-5 /root/scripts/backup.sh
ensino/semestres/2012.1/mcs/material/agendamento_tarefas/inicio.txt · Última modificação: 2012/06/19 09:55 por 2664038