O comando at no Linux é uma excelente forma de agendar tarefas/comandos que devem ser executadas apenas uma vez no Linux. É importante ter em mente que seu uso é indicado para tarefas únicas, aquelas que devem ser executadas em uma data específica. Para tarefas recorrentes o cron e crontab são mais adequados. Já identifiquei algumas vezes reboots agendados no crontab onde ficavam de forma “anual”, o que eu considero uma prática não adequada de agendar reboots.
A utilização do at é relativamente simples, a instalação mais ainda, é provido pelo pacote at.
Abaixo segue a exibição do comando:
operador@Quorra ~ $ apt-cache show at
-- header omitido --
Description-en: Delayed job execution and batch processing
At and batch read shell commands from standard input
storing them as a job to be scheduled for execution in the
future.
.
Use
at to run the job at a specified time
batch to run the job when system load levels permit
-- Tail omitido --
Posteriormente instalado, a sintaxe é simples, para realizar o agendamento de rotinas, deve-se definir o horário qual ela será executada, da seguinte forma:
operador@Quorra ~ $ at now+30 minutes
Irá executar uma rotina daqui meia hora.
operador@Quorra ~ $ at 00:30
Irá executar uma rotina às 00:30
Exemplo:
operador@Quorra ~ $ at now+3 minutes
warning: commands will be executed using /bin/sh
at> echo "hello friend"
at>
job 1 at Fri Mar 16 16:06:00 2018
Depois de agendar, deve-se executar ctrl^D para sair do prompt interativo do at, a rotina será agendada.
Para consultar as rotinas agendadas, utilizase atq
Exemplo:
operador@Quorra ~ $ atq
1 Fri Mar 16 16:06:00 2018 a operador
Repare que, o primeiro componente da linha anterior é um ID de Job, o mesmo deve ser utilizado para realizar a exclusão do agendamento da seguinte forma:
operador@Quorra ~ $ atrm 1
Para visualizar o conteudo de um job, deve ser utilizado o argumento -c da seguinte forma
operador@Quorra ~ $ at -c 1
Outra coisa interessante também provido pelo pacote at é o batch que executa comandos quando os níveis de carga do sistema permitir, em outras palavras, quando a média de carga cai abaixo de 1,5 ou no valor especificado no atd.
Para mais informações, consulte http://www.dltec.com.br/blog/linux/agendando-tarefas-com-o-comando-at-no-linux/
