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 minutes
at> 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”:
# atq
1 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 [email protected] Fri Oct 18 14:33:00 2019
Subject: Output from your job 2
To: [email protected]
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:
$ atq
4 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
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix