at

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

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.

 

Sumário      |      Topo


This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny