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
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
2. Verificar os jobs pendentes atualmente:
# atq
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
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:
Você pode assistir a um vídeo da Bóson Treinamentos sobre o comando at para entender melhor o funcionamento deste utilitário:
Escreva um comentário