sábado, 3 de maio de 2008

Agendamento de Tarefas No Linux: Usando o At

At é o sistema de agendamento mais simples disponível. Seu processo de agendamento é feito via console através da sintaxe:
# at momento comando
Onde:

at é o nome do programa propriamente dito

comando é o comando que vc deseja que seja executado. Caso não seja especificado nenhum comando, será aberto um pequeno prompt do at onde você poderá entrar com os comandos a serem executados. Após inserir o último basta apertar CTLR + D para salvar e sair.

momento seria a data e hora em que o comando será executado, que pode ser escrito das seguintes maneiras:

Midnight: meia noite
Noon: meio dia
Teatime: 16 horas

Ou você pode especificar uma hora personalizada no formato HH:MM, que pode ser acompanhado dem AM e PM e ainda ser acompanhada de data nos formatos MMDDYY ou MM/DD/YY ou ainda DD.MM.YY. Você também pode juntar a palavra tomorrow para que a tarefa seja executada no dia seguinte.

Outra possibilidade é a de se especificar um momento no futuro a partir do presente usando now + contador unidade onde contador vai ser o período e unidade pode ser minutes, hours, days e weeks. Ou mesmo você também pode especificar uma hora depois desse tempo colocando uma hora seguido de am ou pm no lugar do now.

Alguns exemplos:
# at 4pm + 3 days /usr/bin/programa.bin

# at 20:00 /usr/bin/programa2.bin

# at 10am Jul 31 /usr/bin/programa3.bin

# at 1am tomorrow /usr/bin/programa
Você pode incluir os comandos a serem executados em um script e carregar o mesmo através do comando:
# at –f script.sh noon
Além da opção –f, o at possui outras opções, que são:

-c: exibe o conteúdo para uma tarefa
-m: envia um email ao fim da tarefa (exige a instalação do sendmail)
-v: mostra a hora em que o trabalho será executado

O comando at possui outros 3 associados, que são:

atq, equivale a at –l, permite visualizar a lista de trabalhos pendentes
atrm, equivale a at –d, permite remover trabalhos da lista
batch, executa um trabalho somente quando o load average do sistema abaixa.

O at possui os seguintes arquivos associados:

/etc/at.allow : caso esse arquivo existe, apenas os usuários indicados no mesmo poderão inserir novos jobs.
/etc/at.deny: caso o arquivo at.allow não exista, apenas os usuários não especificados aqui poderão agendar tarefas.
/var/spool/cron/atjobs
/var/spool/cron/atspool