Comando at – Agendar tarefas para execução única no Linux

Comando at – Agendamento de tarefas para execução única no Linux

O utilitário at lê comandos a partir da entrada padrão ou de um arquivo especificado, os quais serão executados em um período futuro, usando-se /bin/sh. A configuração é feita em um prompt interativo.

Sintaxe:

at hora_do_dia

Onde hora_do_dia pode ser:

  • HH:MM
  • MMDDYY ou DD.MM.YY caso o período desejado esteja mais de 24 horas adiante
  • noon (12:00), midnight (24:00), teatime (16:00)
  • now + período especificado no futuro

Após terminar a edição dos comandos de at, pressione Ctrl+D para sair do prompt interativo e gravar o job.

Comandos relacionados

atq – Listar Jobs at pendentes do usuário, a menos que o usuário seja o root; neste caso, serão listados os Jobs de todos os usuários. O formato das linhas de saída (uma para cada job) é: Número do Job, data, hora, fila e nome do usuário.

atrm – Remover um job da fila, identificado pelo seu número de job

batch – Executa Jobs quando a carga média do sistema cai abaixo de 1.5, ou outro valor especificado quando atd é invocado.

Opções de at

-f
Especificar um arquivo de onde ler os comandos a executar.

-m
Enviar e-mail para o usuário quando o job tiver terminado, mesmo que não haja nenhuma saída.

-t hora
Rodar o job na hora informada

-l
Alias para o comando atq

-r
Alias para o comando atrm

-d
Alias para o comando atrm

-b
Alias para o comando batch

-v
Mostra a hora em que o job será executado antes de ler o job

O controle de acesso é realizado com os seguintes arquivos, os quais determinam quem pode submeter Jobs via at ou via batch:

/etc/at.allow
/etc/at.deny

O formato desses arquivos é uma lista de nomes de usuários, um em cada linha. Espaços em branco não são permitidos.

Se o arquivo /etc/at.allow existir, apenas os usuários mencionados nele poderão usar o at.

Caso o /etc/at.allow não exista, será verificado o arquivo /etc/at.deny, e os usuários NÃO mencionados nesse arquivo poderão usar o at.

Se o arquivo /etc/at.deny estiver vazio, isso significa que todos os usuários poderão usar o at. E se nenhum dos dois arquivos existir, apenas o usuário root terá permissão de usar o comando at.

O daemon atd deve estar rodando para que os comandos agendados com at sejam executados nos horários especificados. Verifique com:

$ /etc/init.d/atd status

agendar tarefas com o comando at no linux

Um usuário não consegue visualizar os Jobs de outros usuários, apenas os seus próprios; já o usuário root pode ver os Jobs de todos no sistema.

Exemplos

1. Programar a remoção de arquivos do diretório /tmp automaticamente para as 20:00:

# at 20:00
at> rm /tmp/*
at> CTRL+D

agendamento de tarefas no linux com o comando at

2. Verificar os jobs pendentes atualmente:

# atq

como agendar tarefas no linux com comando at

3. Remover o job de número 2 da fila:

# atrm 2

ou

# at -d 2

4. Impedir a usuária rita de usar o comando at. Para isso, abrimos o arquivo /etc/at.deny e simplesmente acrescentamos o nome do usuário em uma linha nova. Salvamos e fechamos o arquivo:

# vi /etc/at.deny

agendamento de tarefas no linux - o comando at

Veja na figura acima o trecho final do arquivo com a conta de usuário rita adicionada.

E na captura de tela a seguir, veja o que acontece quando a usuária rita tenta usar o comando at:

agendar tarefas para execução posterior no linux - comando at

Você pode assistir a um vídeo da Bóson Treinamentos sobre o comando at para entender melhor o funcionamento deste utilitário:

Sobre Fábio dos Reis (1358 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*