Usando o Cron
Criada por: Frederico Madeira, última modificação em: Sat 12 of Jan, 2008 (04:55 UTC)
Sumário
Indrodução
O Cron é um deamon utilizado para executar tarefas agendadas nos sistema operacional.
A cada minuto ele procura por arquivos crontab no diretório \var\spool\cron e por regras de agendamento no arquivo \etc\crontab.
Essas regras pode ser agendadas para serem executadas em momentos de tempo específicos: minuto, hora, dia do mês, mês, dia da semana, ou ainda, em uma combinação destes
Campos do Crontab
Minutos | 0-59 |
Hora | 0-23 |
Dia do Mês | 1-31 |
Mês | 1-12 |
Dia da Semana | 0-6, 0 = Domingo |
Usuário | Usuário do Sistema que executará o agendamento |
Script | Tarefa a ser executada |
Nos campos numéricos, é possível a utilização dos seguintes wildcards:
'-' para especificar range de valores
Ex: 1-7: Se aplicado no campo de minuto, significaria do minuto 1 ao 7.
',' para especificar valores
Ex: 1,2,4: Se usado no campo de hora, significara nas horas 1, 2 e 4.
'*/n' para especificar intervalo
Ex: */5: Se usado no campo de minuto, significaria que a cada 5 minutos
Exemplo de um agendamento
42 4 1 * * root run-parts /etc/cron.monthly
Minutos | 42 |
Hora | 4 |
Dia do Mês | 1 |
Mês | * |
Dia da Semana | * |
Usuário | root |
Script | run-parts (\etc\cron.monthly - parâmetro do script run-parts) |
Controle de acesso
É possível controlar o uso do servidor Cron, especificando os usuários que podem utilizá-lo. Isso é feito através dos arquivos abaixo:
/etc/cron.allow | Se existir, apenas os usuários especificados nele poderão usar o Cron (root sempre poderá) |
/etc/cron.deny | Se o anterior não existir, os usuários especificados nele não poderão usar o cron |
Alternativamente, em sistemas baseados em RedHat é possível realizar o controle de acesso através do PAM, configurável através do arquivo /etc/pam.d/crond. O cron carrega o ambiente PAM através do módulo pam_env, no entanto, essa configuração pode ser sobrescritas através de configurações no arquivo crontab.
Agendamentos para usuários não-privilegiados
Os usuários não privilegiados do sistema, não possuem acesso ao /etc/crontab, no entanto eles possuem uma forma de agendar suas tarefas.
Através do comando crontab o usuário pode criar agendamentos que serão executados com as permissões atribuídas a ele.
As opções do crontab são:
-u: especifica o usuário que deseja-se consultar. Se for omitido, será considerado o usuário que o está executando.
-e: Edita os agendamentos do usuário
-l: Lista os agendamentos do usuário
-r: deleta os agendamentos do usuário
-i: confirma antes de deletar os agendamentos do usuário
Campos do Crontab para usuários não privilegiados
Minutos | 0-59 |
Hora | 0-23 |
Dia do Mês | 1-31 |
Mês | 1-12 |
Dia da Semana | 0-6, 0 = Domingo |
Script | Tarefa a ser executada |
Abraços.
Frederico Madeira
www.madeira.eng.br
Comentários
obrigado