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:
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.
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
15 0 * * * /root/scripts/backup.sh
15 6 * * * /root/scripts/backup.sh
15 6 1 * * /root/scripts/backup.sh
15 0,6,12,18 * * * /root/scripts/backup.sh
15 */6 * * * /root/scripts/backup.sh
15 */6 * * 1-5 /root/scripts/backup.sh