at [opções]
Descrição
Este comando agenda uma tarefa para que seja executada em determinado momento.
Algumas opções do comando
- -c tarefa : o conteúdo da tarefa agendada é enviado para a saída padrão, onde tarefa corresponde a um número de identificação gerado pelo sistema.
- -d : deleta tarefa agendada. É um alias para o comando atrm.
- -f arquivo : a tarefa a ser executa está no arquivo especificado.
- -l : lista as tarefas agendadas. É um alias para o comando atq.
- -m : envia um e-mail para o usuário quando a tarefa for concluída.
- -M : nunca envia e-mail para o usuário.
- -q fila : armazena a tarefa em uma determinada fila. Quando o nome da fila não é fornecido, o sistema coloca a tarefa agendada pelo comando at na fila “a”. As filas podem ser de “a” a “z” e de “A” a “Z”. O nome da fila influencia na prioridade de execução (a fila “a” tem prioridade sobre a fila “b” e fila com letra minúscula tem prioridade sobre fila com letra maiúscula).
- -t time : o horário de execução da tarefa está no formato timestamp, ou seja, [[CC]YY]MMDDhhmm[.ss], onde
- CC : os dois primeiros dígitos do ano (opcional);
- YY : os dois últimos dígitos do ano (só são obrigatórios se os dois primeiros dígitos do ano forem fornecidos);
- MM : os dois dígitos correspondentes ao més;
- DD : os dois dígitos correspondentes ao dia;
- hh : os dois dígitos correspondentes à hora;
- mm : os dois dígitos correspondentes aos minutos;
- ss : os dois dígitos correspondentes aos segundos (opcional).
Formato do horário
- São aceitas horas no formato HHMM ou no formato HH:MM. Outras opções válidas para horas são midnight (meia-noite), noon (meio-dia), teatime (hora do chá, ou seja 16:00) e now (agora).
- Junto com a hora pode-se também especificar o dia da tarefa no formato MMDDAA, MM/DD/AA ou MM.DD.AA. Além disso, é possível também definir datas como today (hoje) e tomorrow (amanhã).
- Outra forma de definir o horário de execução de uma tarefa é especificar uma hora mais um contador de tempo. Por exemplo, 8:00 + 3 days marca a tarefa para ser executada daqui a 3 dias às 8:00 horas da manhã. Pode-se usar como contador de tempo os termos minutes (minutos), hours (horas), days (dias) e weeks (semanas).
Exemplos
Considere o arquivo teste com as duas linhas mostradas abaixo.
ls > arq1_teste
ps -aux > arq2_teste
Para agendar a execução do arquivo teste às 20:10 do mesmo dia, basta digitar
at -f teste 20:10
Abaixo é apresentada a resposta do sistema: a tarefa recebeu o número de identificação 2 e será executada usando o shell padrão às 20:10 do dia 4 de março de 2026.
warning: commands will be executed using /bin/sh
job 2 at Wed Mar 4 20:10:00 2026
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 19:16 do dia 4 de março pelo usuário morganna. O código a0000201c2cfee identifica a tarefa e foi gerado pelo daemon atd.
-rwx—— 1 morganna daemon 6139 mar 4 19:16 a0000201c2cfee
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.
2026-03-04T20:10:00.006710-03:00 morganna atd[49822]: pam_unix(atd:session): session opened for user morganna(uid=1000) by morganna(uid=1)
2026-03-04T20:10:00.055448-03:00 morganna atd[49822]: pam_unix(atd:session): session closed for user morganna
É 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.
- at 20:00 tomorrow : amanhã às 20 horas.
- at teatime tomorrow : amanhã às 16 horas.
- at teatime +2 days : depois de amanhã às 16 horas.
- at -t 202612312355.45 : às 23:55:45 do dia 31 de dezembro de 2026 (timestamp).
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 as tarefas acima agendadas no dia 4 de março, temos a seguinte saída:
![]()
Para ver o conteúdo da tarefa 13, basta digitar
at -c 3
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 3 do sistema é só entrar com o comando
at -d 3
Observações
- Caso a distribuição Linux não tenha o comando at, pode-se usar o comando apt para fazer a instalação.
sudo apt install at
Se o servidor atd, responsável pela execução das tarefas agendada, não tenha sido inicializado com a instalação, digite:
sudo systemctl enable –now atd
- As tarefas agendadas ficam armazenadas em /var/spool/cron/atjobs.
![]()
- Informações sobre a execução podem ser encontradas em /var/log/auth.log.
- A tarefa agendada com o comando at é executada apenas uma vez. Para agendar tarefas que devem ser executadas periodicamente, use o comando crontab.