4 de mai. de 2012

Configurando Crontab

Ola pessoal, hoje estarei publicando algo sobre Crontab (tarefa agendada) porem no Linux, este material retirei da internet, ja esta bem explicado facilitando assim a busca de dicas pelos frequentadores do blog.

Como utilizar o cron
O agendamento das tarefas é feita através do arquivo de configuração localizado no diretório /etc/crontab ou em arquivos de usuários localizados em /var/spool/cron/crontabs/[nome do usuário].

Algumas distribuições do Linux possui algumas funções diretamentes ligadas a Cron como exemplo abaixo:

 crontab [-u nome_usuarior] [ -e | -l | -r ]
        -e     (Edita Crontab do Usuario especificado)
        -l      (Lista a Crontab do Usuario especificado)
        -r      (Exclui os agendamentos da Crontab do Usuario especificado)
Para quem não conseguiu entender o parametro acima, imagine que voce tenha uma estação de trabalho Windows com diversos usuarios cada usuario tem uma tarefa agendada, seria o mesmo conceito no Linux porem mais dinamico...

Para adicionar uma tarefa ao cron é preciso que você apenas digite o comando abra com um editor de texto qualquer (se estiver usando interface gráfica Gnome, e se tiver instalado, poderá utilizar o gedit, ou se e estiver em moda caracter o vim ,vim, nano, pipe como preferir) o arquivo /etc/crontab e agendar, definindo o mês/dia/hora em que o comando devera ser executado. Para que a ferramenta cron funcione não é necessário reiniciá-la.

Para que o agendamento funcione é necessário que siga um padrão, um formato ao qual deve se respeitar. Veja o exemplo abaixo:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [usuário] [comando]
31 18 1 * * root /script/nomescript
|   | | | |  |    |
|   | | | |  |     \_Comando que será executado
|   | | | |  |
|   | | | |   \_ UID que executará o comando
|   | | | |
|   | | | \_ Dia da semana (0-7)
|   | | |
|   | |  \_ Mês (1-12)
|   | |
|   |  \_ Dia do Mês (1-31)
|   |
|    \_ Hora
|
\_ Minuto

Alguns exemplos de comandos
- Para rodar todo dia de hora em hora:
00 * * * * script

- Para rodar de dez em dez minutos todos os dias:
00-59/10 * * * * script

- Para rodar uma seqüência de horas:
20 10,12,16,18,22 * * * script

- Para rodar numa seqüência de dias do mês às 14:00:
00 14 03-15 * * script

- Para rodar ao meio-dia e a meia-noite de terça a sábado:
00 00, 12 * * 2-6 script