37.2. At e Batch

Enquanto o cron é usado para agendar tarefas recorrentes, o comando at é usado para agendar tarefas únicas em uma hora específica. O comando batch é usado para agendar uma tarefa única a ser executada quando a média de carga dos sistemas cai abaixo de 0,8.

Para usar o at ou o batch, o pacote RPM at deve ser instalado e o serviço atd deve estar rodando. Para verificar se o pacote está instalado, use o comando rpm -q at. Para verificar se o serviço está rodando, use o comando /sbin/service atd status.

37.2.1. Configurando Trabalhos com At

Para agendar um trabalho único em uma hora específica, digite o comando at hora, onde hora é a hora para executar o comando.

O argumento hora pode ser um dos seguintes:

A hora deve ser especificada primeiro, seguida da data opcional. Para mais informações sobre o formato hora, leia o arquivo texto /usr/share/doc/at-<version>/timespec.

Após digitar o comando at com o argumento da hora, será exibida uma janela de comandos at>. Digite o comando a ser executado, pressione [Enter] e pressione Ctrl-D. Mais de um comando pode ser especificado digitando cada comando seguido da tecla [Enter]. Após digitar todos os comandos, pressione [Enter] para ir para uma linha em branco e pressione Ctrl-D. Alternativamente, um script shell pode ser inserido na janela de comandos, pressionando [Enter] após cada linha do script e pressionando Ctrl-D em uma linha em branco para sair. Se um script for inserido, a shell usada é aquela definida no ambiente SHELL do usuário, ou a shell de login do usuário ou /bin/sh (a que for encontrada primeiro).

Se o conjunto de comandos ou script tentar exibir informações para a saída default (satandard out), o output é enviado por e-mail ao usuário.

Use o comando atq para visualizar trabalhos pendentes. Consulte a Seção 37.2.3 para mais informações.

O uso do comando at pode ser restrito. Consulte a Seção 37.2.5 para ver detalhes.

37.2.2. Configurando Trabalhos com o Batch

Para executar uma tarefa única quando a média de carga estiver abaixo de 0,8, use o comando batch.

Após digitar o comando batch, será exibida uma janela de comandos at>. Digite o comando a executar, pressione [Enter] e então Ctrl-D. Mais de um comando pode ser especificado digitando cada um deles seguido da tecla [Enter]. Após digitar todos os comandos, pressione [Enter] para ir para uma linha em branco e então pressione Ctrl-D. Alternativamente, um script shell pode ser inserido na janela de comandos, pressionando [Enter] após cada linha do script e pressionando Ctrl-D em uma linha em branco para sair. Se um script for inserido, a shell usada é aquela definida no ambiente SHELL do usuário, ou a shell de login do usuário ou /bin/sh (a que for encontrada primeiro). Assim que a média de carga estiver abaixo de 0,8, o conjunto de comandos ou script será executado.

Se o conjunto de comandos ou script tentar exibir informações para a saída default (satandard out), o output é enviado por e-mail ao usuário.

Use o comando atq para visualizar trabalhos pendentes. Consulte a Seção 37.2.3 para mais informações.

O uso do comando batch pode ser restrito. Consulte a Seção 37.2.5 para detalhes.

37.2.3. Visualizando Trabalhos Pendentes

Para visualizar os trabalhos pendentes do at e do batch, use o comando atq. Este exibe uma lista dos trabalhos pendentes; cada trabalho em uma linha. Cada linha segue o formato número do trabalho, data, hora, classe do trabalho e nome do usuário. Os usuários podem visualizar apenas seus próprios trabalhos. Se o usuário root executar o comando atq, serão exibidos todos os trabalhos de todos os usuários.

37.2.4. Opções Adicionais de Linha de Comando

Opções adicionais de linha de comando para o at e batch incluem:

OpçãoDescrição
-fLê os comandos ou script a partir de um arquivo ao invés de especificá-los na janela de comandos.
-mEnvia e-mail ao usuário quando o trabalho estiver completo.
-vExibe a hora em que o trabalho será executado.

Tabela 37-1. Opções de Linha de Comando para at e batch

37.2.5. Controlando o Acesso a At e Batch

Os arquivos /etc/at.allow e /etc/at.deny podem ser usados para restringir o acesso aos comandos at e batch. O formato de ambos arquivos de controle de acesso consiste em um nome de usuário em cada linha. Espaços em branco não são permitidos em nenhum destes arquivos. O daemon do at (o atd) não precisa ser reiniciado se os arquivos de controle de acesso forem modificados. Os arquivos de controle de acesso são lidos cada vez que o usuário tentar executar os comandos at ou batch.

O usuário root sempre pode executar os comandos at e batch, independentemente dos arquivos de controle de acesso.

Se o arquivo at.allow existir, somente os usuários listados neste poderão usar at ou batch, e o arquivo at.deny será ignorado.

Se at.allow não existir, os usuários listados em at.deny não poderão usar at ou batch.

37.2.6. Iniciando e Parando o Serviço

Para iniciar o serviço at, use o comando /sbin/service atd start. Para parar o serviço, use o comando /sbin/service atd stop. É recomendado inciar o serviço no momento da inicialização da máquina (boot time). Consulte o Capítulo 21 para obter detalhes sobre o início automático do serviço cron na hora da inicialização.