Agendando tarefas no GNU/Linux com At

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/

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.