quinta-feira, 27 de junho de 2013

Agendador de tarefas CRON


Descrição:
 
O Cron, e o gerenciador de tarefas do sistema operacional Linux. Ele e responsável pelo  agendamento de tarefas e sua execução.
 
Imagine que você precisa fazer um backup do banco de dados, mais você não que fazer no horário de expediente da empresa e neste momento que o Crontab entra em cena para nos auxiliar. Você irá fazer um script de backup e depois criar um agendamento de tarefa. 
Que pode ser configurando para executar em momentos de tempo específicos em: minuto, hora, dia do mês, mês, dia da semana.

Atributos do comando crontab:


Atributo Descrição
crontab -l Visualiza os agendamento de todos os usuário.
crontab -lu username Visualiza os agendamentos de um usuário especifico.
Obs: Só o usuário [root] tem permissão para usar o
 atributo "u"junto com o atributo "l". 
crontab -r Deleta todos os agendamentos do usuário corrente.
crontab -ru Deleta todos os agendamentos de um usuário especifico.
Obs: Só o usuário [root] tem permissão para usar o
atributo "u" junto com o atributo "r". 
crontab -e Edita o arquivo de agendamento do crontab.
O editor de texto e o "vi" onde para inser o texto e
necessário pressionar a tecla [i] que habilita entrada de texto.
Para salvar pressione a tecla [Esc] para sair do modo
edição e depois a tecla [:], para entra no prompt de opção
do editor, depois ente com a opção [wq!] que efetivarar
as alterações. 
crontab -eu username Edita o arquivo de agendamento do crontab de um
usuário especifico.
O editor de texto e o "vi" onde para inser o texto e
necessário pressionar a tecla [i] que habilita entrada de texto.
Para salvar pressione a tecla [Esc] para sair do modo
edição e depois a tecla [:], para entra no prompt de opção
do editor, depois ente com a opção [wq!] que efetivarar
as alterações. 
crontab -i Confirma antes de deletar os agendamentos do usuário.
  

Local dos Arquivo do Crontab:
Nome Arquivo Descrição
\var\spool\cron Nesse diretório esta os arquivos (crontab) com a configuração de agendamento do usuário. Quando o comando "crontab -e" e  executado, ele abre o  arquivo do usuário atual que esta localizado no diretório "cron" para  edição do usuário que pode inserir um novo agendamento ou apagar um agendamento antigo.

Os arquivos (crontab) localizado no diretório "cron" estão nomeados com o nome dos usuários do Sistema Operacional.

Observação:

O CRON lê os arquivos crontab armazenados nesse diretório referido a cada minuto para verificar as tarefas agendadas nestes arquivos.

O diretório "cron" e os arquivos contidos nele só pode ser acessado através do usuário "ROOT".

Não edite os arquivos (crontab) sem usar o comando "crontab -e" para que eles não fiquem corrompidos.   


Como configurar:

A tabela abaixo mostra os valores a ser inseridos para a configurar da tarefa. A ordem das colunas da tabela estão respeitando a ordem da sequencia a ser informada na tabela de agendamento partindo da esquerda para a direita. 

Minuto Hora Dia Mês Dia Semana Comando
(0-59) (0-23) (1-31) (1-12) (0-6) Comando a ser executado.
 
Observação:

O "Dia Semana" e referenciado da seguinte forma :

0 = Domingo         1 = Segunda-Feira;
2 = Terça-Feira    3 = Quarta-Feira;
4 = Quinta-Feira  5 = Sexta-Feira
6 = Sábado

Observação, nos campos numéricos, é possível a utilização dos seguintes wildcards:

Caracter Especial Descrição
              *  Usado para especificar que o campo deve ser ignorado.

Obs.: Ele perde essa função quando usamos ele com a barra
invertida para especificar um período.

Ex: No campo minuto informamos o seguinte valor "*/5", isso
que dizer que há cada 5 min a tarefa irá ser executada.
              - Usado para especificar range de valores.
              , Usado para especificar valores.
              / Usado para especificar intervalo
 
Sintaxe:

[minutos] [horas] [dias do mês] [mês] [dias da semana] [comando]


Exemplo Simples:
 
Explicação do comando abaixo:

Alinha de agendamento a cima significa para o Cron que você quer executar uma tarefa às 15:30 no dia 27 do mês de Junho na Quinta-Feira, para executar o comando "ls" que vai listar todo o conteúdo do diretório /home/thiago e depois irá criar um arquivo com o conteúdo da listagem com o nome "listaArq.txt". 
 
MinutoHoraDiaMêsDia SemanaComando
  30
 15
 27
 6
 4
 ls -l /home/soa > /home/Thiago/listaArq.txt

                                                           
Exemplo Avançado:


Explicação do comando abaixo:

Isto executaria o “comando” as 8:00 do dia 10/Junho em qualquer dia da semana (observe que ignoramos o dia da semana).
 
MinutoHoraDiaMêsDia SemanaComando
  0
 8
 10
 6
*
 

Explicação do comando abaixo: 

Isto executaria o “comando” as 8:00 do domingo (não importa qual seja o dia do mês e nem qual seja o mês, o valor 0 no quinto campo indica o domingo).
 
MinutoHoraDiaMêsDia SemanaComando
  0
 8
 *
 *
0
 

Explicação do comando abaixo:

Isto executaria o “comando” as 8:00 do dia 10 (não importa o mês e nem o dia da semana).
 
MinutoHoraDiaMêsDia SemanaComando
  0
 8
 *
 *
0
 



Explicação do comando abaixo:

Isto executaria o “comando” as 8:00 do dia 10 (não importa o mês e nem o dia da semana).
 
MinutoHoraDiaMêsDia SemanaComando
  0
 8
 10
 *
*
 

Explicação do comando abaixo:

Isto executaria o “comando” as 8:00 (todos os dias de todos os meses em qualquer dia da semana).
 
MinutoHoraDiaMêsDia SemanaComando
  0
 8
 *
 *
*
 


Explicação do comando abaixo:

Isto executaria o “comando” a cada 5 minutos (todos hora de cada dia do mês de todos os meses em qualquer dia da semana).
 
MinutoHoraDiaMêsDia SemanaComando
  5
 *
 *
 *
*
 


Explicação do comando abaixo:

Isto executaria o “comando” todos os minutos, ou seja, a cada minuto de cada hora em todos os dias do mês e da semana todos os meses.
 
MinutoHoraDiaMêsDia SemanaComando
  *
 *
 *
 *
*
 

Exemplo Avançado com Caracteres Especial:

Explicação do comando abaixo:

'-' para especificar range de valores

Se aplicado no campo de minuto, significaria do minuto 1 ao 7.
 
MinutoHoraDiaMêsDia SemanaComando
1-7  
 *
 *
 *
*
 


Explicação do comando abaixo:

',' para especificar valores

Se usado no campo de hora, significara nas horas 1, 2 e 4.
 
MinutoHoraDiaMêsDia SemanaComando
0  
 1,2,4
 *
 *
*
 

Explicação do comando abaixo:

'*/n' para especificar intervalo

Se usado no campo de minuto, significaria que a cada 5 minutos.
 
MinutoHoraDiaMêsDia SemanaComando
*/5  
 *
 *
 *
*
 

Bom pessoal e isso ai, espero ter ajudado! Até aproxima.

Autor: Thiago Pereira


Referências:

http://blog.welrbraga.eti.br/?p=1379

 

Nenhum comentário:

Postar um comentário