fbpx Certificação Linux: Comando at no Linux (agendador de tarefas) [Guia Básico]

Blog

Comando at no Linux (agendador de tarefas) [Guia Básico]

📅 01/01/2019 ⏱ 4 min ✍️ Uira Ribeiro
Linuxcomandos
Comando at no Linux (agendador de tarefas) [Guia Básico]

O comando at no Linux serve para agendar tarefas de forma semelhante ao cron, mas de maneira simplificada e não recorrente.

Sua principal aplicação é para disparar tarefas que devam ser executadas somente uma vez.

O seu formato para agendar as tarefas são mais amigáveis e mais próximos da notação humana.

Uma característica deste programa é que ele executa as tarefas mesmo que tenham passado do seu horário de execução. É útil em computadores que são desligados com frequência ou quando ocorre uma interrupção no fornecimento de energia. 

As notações de data e hora possíveis podem ser informadas nos formatos:

  • HH:MM: HH para hora e MM para minuto;
  • midnight: para meia-noite;
  • noon: para meio-dia;
  • teatime: para 16:00;
  • MMDDYY: MM para mês, DD para dia e YY para ano;
  • MM/DD/YY;
  • DD.MM.YY;
  • + num unidade: Onde num é o número de unidades de tempo. As unidades podem ser minutes (minutos), days (dias), hours (horas) e weeks (semanas).

As opções mais frequentes são:

  • -l: Lista todas as tarefas agendadas pelo at;
  • -d N: Apaga uma determinada tarefa identificada pelo número N;
  • -f arquivo: Indica o arquivo que contém os comandos a serem executados.

Veja os exemplos:

Executa os comandos especificados no arquivo comandos.txt no horário do café da tarde às 16:00 horas. 

# at -f comandos.txt teatime 

Executa os comandos especificados no arquivo comandos.txt em 3 minutos. 

# at -f comandos.txt +3 minutes 

Executa os comandos especificados no arquivo comandos.txt daqui a 3 horas no dia de amanhã. 

# at -f comandos.txt tomorrow +3 hours 

Outra forma de utilizar o at, é digitar diretamente os comandos que serão executados no seu prompt de comandos:

# at now + 2 minutesat> w at> Ctrl D
job 1 at Fri Oct 18 14:25:00 2019

Neste exemplo, o at irá abrir um prompt de comandos "at>" para digitar os comandos um por linha. O comando "w" que mostra os usuários conectados será executado dentro de 2 minutos pelo at.

Para sair do prompt do at, deve-se digitar Control-D.

O job recém-criado pode ser visto com o comando "atq":

# atq1	Fri Oct 18 14:25:00 2019 a root

O resultado dos comandos executados pelo at são enviados por e-mail para o usuário que agendou a tarefa:

From root@certificacaolinux.com.br  Fri Oct 18 14:33:00 2019
Subject: Output from your job        2
To: uira@certificacaolinux.com.br
Date: Fri, 18 Oct 2019 14:33:00 +0000 (UTC)


 14:33:00 up 3 days, 11:49,  1 user,  load average: 0.04, 0.13, 0.11
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uira      pts/0    ip-10-8-0-6       14:14    9.00s  0.08s  0.01s sshd: uira[priv]

atq

O comando atq lista os jobs pendentes do usuário, e no caso do root, lista todos os jobs. O comando fornece na saída o número do job, data, hora, fila e usuário. 

Exemplo:

$ atq4	2015-05-11	19:00	uribeiro

atrm

O comando atrm remove um job da fila de tarefas, identificado pelo número do job.

Exemplo:

$ atrm 4

Todas as tarefas agendadas são armazenadas em arquivos dentro do diretório /var/spool/at/.

Permissões do at

O comando at também possui dois arquivos responsáveis pela segurança de acesso ao agendador:

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

Se o arquivo at.allow existir, um determinado usuário precisa ter seu login listado no seu conteúdo para ter permissões expressas para o uso do at.

Se at.deny existir, os logins listados em seu conteúdo são proibidos de utilizar o at, e todos os outros usuários estão liberados.

Se nenhum dos dois arquivos existirem, o uso do at será permitido somente para superusuário.

Se o arquivo at.deny estiver vazio, o uso do at será permitido por todos os usuários.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp