Portal do Governo Brasileiro

at

at [opções]

Descrição

Este comando agenda uma tarefa para que seja executada em determinado momento.

Algumas opções do comando

Formato do horário

Exemplo

Considere o arquivo teste com o seguinte conteúdo:

ls > arq1_teste
ps -aux > arq2_teste

Para agendar a execução do arquivo teste às 17:22 do mesmo dia, basta digitar

at -f teste 17:22

Abaixo é apresentada a resposta do sistema: a tarefa recebeu o número de identificação 11 e será executada usando o shell padrão às 17:22 do dia 7 de novembro de 2012.

warning: commands will be executed using /bin/sh
job 11 at Wed Nov 7 17:22:00 2012

O agendamento fica armazenado no diretório /var/spool/cron/atjobs/ para ser executado pelo daemon atd. Portanto, para ver as tarefas agendadas, entre com

sudo ls -al /var/spool/cron/atjobs/

É possível ver abaixo uma possível saída para o comando. Neste caso, podemos deduzir que a tarefa foi agendada às 17:20 do dia 7 de novembro pelo usuário aluno. O número que identifica a tarefa foi gerado pelo daemon atd.

-rwx------ 1 aluno daemon 3791 Nov 7 17:20 a0000b0157e96a

Para ver se houve algum erro de execução, basta verificar o arquivo /var/log/auth.log. No caso em tela, a execução foi normal e o log só mostra o início e o fim do serviço.

Nov 7 17:22:00 aluno atd[2670]: pam_unix(atd:session): session opened for user aluno by (uid=1)
Nov 7 17:22:00 aluno atd[2670]: pam_unix(atd:session): session closed for user aluno

É importante observar que o primeiro comando do arquivo "teste" corresponde a listagem dos arquivos do diretório onde o usuário aluno estava quando agendou a tarefa. Enquanto o segundo comando do arquivo "teste" independe de qualquer localização de onde partiu o agendamento.

Comentários sobre as opções do comando

No lugar de criar um arquivo com os comandos a serem executados, é possível fornecer os comandos usando o prompt do sistema. Para isto, basta entrar com o comando at e o horário da execução das tarefas. Abaixo alguns exemplos.

Neste caso, é aberto um editor de linhas. Pode-se então digitar um comando por linha e dar ENTER após cada comando ou pode-se digitar vários comandos por linha, separando-os por ponto-e-vírgula. Para encerrar o editor, deve-se digitar CTRL+D.

Para ver as tarefas agendadas, digite

at -l

O comando acima informa o número da tarefa agendada, a data e a hora da execução, o nome da fila de execução (o padrão é a fila "a") e o nome do usuário. Considerando que as tarefas acima foram agendadas no dia 7 de novembro, podemos ter a seguite saída:

14FriNov9 16:00:00 2012 a aluno
13ThuNov8 16:00:00 2012 a aluno
12ThuNov8 20:00:00 2012 a aluno
15MonDec3123:55:45 2012 a aluno

Para ver o conteúdo da tarefa 12, basta digitar

at -c 12
Note que o sistema apresenta um arquivo onde as variáveis de ambiente são definidas antes da execução dos comandos. Portanto, o sistema primeiro recupera o ambiente onde o comando at foi digitado.

Para remover a tarefa 12 do sistema é só entrar com o comando

at -d 12

Observações

 

  Topo   |   Guia   |   Home