segunda-feira, 12 de dezembro de 2011

Dica sobre o Crontab

crontab é um programa do Unix que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron, um programa que executa comandos agendados nos Sistemas Operacionais do tipo Unix(como o Linux ou o Minix, por exemplo). O cron se encarregará de verificar a hora e determinar se existe ou não algum programa a ser rodado. Caso exista ele o rodará na hora e data solicitada, neste post vamos explicar um pouco sobre isso.

 Vamos para a sintaxe Funciona assim:

mm hh dd MM ss script

 Onde:

mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-6)
script = comando a ser executado.
 
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
 
 
 Alguns exemplos Abaixo:
 
 
 #cat /etc/crontab

Todo dia de hora em hora (hora cheia)
00 * * * * /bin/script 
 
De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-59)
  00-59/5 * * * * /bin/script 
 
Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
  15 10,12,16,18,22 * * * /bin/script< 
 
Nos primeiros cinco dias do mês às 19:25
  25 19 01-05 * * /bin/script 
 
De segunda a sexta ao meio-dia e a meia-noite
  00 00,12 * * 1-5 /bin/script 
 
Script rodar Segunda,Quarta,Sexta às 2 horas
   0 2 * * mon,wed,fri /bin/script 
 
Script para rodar Terça,Quinta às 3 horas
   0 3 * * tue,thu /bin/script 
 
Script para ser executado minuto a minuto
   */1 * * * * /bin/script

 
 
   Alguns Parâmetros


-l usuário -- lista as tarefas agendadas para o usuário
-e usuário -- edita o agendador
-r usuário -- apaga o arquivo do usuário
-c diretório -- especifica um diretório para o Crontab
 
 
 Há e também de uma olhada na manpage do crontab
 #man crontab