fbpx

Comandos Linux – Comando at

Comandos Linux at, batch, atq e atrm

Atualizado: 05/04/2019 por Computer Hope

no comando

Em sistemas operacionais do tipo Unix, os comandos at , batch , atq e atrm podem agendar um comando ou comandos para serem executados em um horário especificado no futuro.

Este documento cobre as versões GNU / Linux de at , batch , atq e atrm .

Descrição

O comando at agenda um comando para ser executado uma vez em um horário específico em que você normalmente tem permissão para executar. O comando at pode ser qualquer coisa, desde uma simples mensagem de lembrete até um script complexo. Você inicia executando o comando at na linha de comando, passando o horário agendado como opção. Em seguida, coloca você em um prompt especial, onde você pode digitar o comando (ou série de comandos) a ser executado no horário agendado. Quando terminar, pressione Control-D em uma nova linha e seu comando será colocado na fila.

Uma sequência típica de comando se parece com esta (os comandos que você digita são mostrados aqui na caixa azul ou em negrito abaixo):

  at 21:30 ter
  aviso: os comandos serão executados usando / bin / sh
 at> echo "São 21:30 no domingo."
 at> ^ D
 emprego 1 em Dom Nov 16 09:30:00 2014

Quando executamos o comando, a primeira coisa que fizemos foi nos dar um “aviso” nos dizendo com qual shell de comando nossos comandos serão executados: neste caso, / bin / sh , o Bourne Shell . Esse shell é o shell Unix padrão tradicional.

Em seguida, ele nos coloca no prompt > . Aqui digitamos um simples comando de eco , que ecoa uma sequência de texto. Pressionamos enter e somos colocados em um novo prompt > . Em seguida, pressionamos Control-D , dizendo que todos nós terminamos nossos comandos. Em seguida, ele nos diz que nosso trabalho é o número 1 e que será executado na próxima terça-feira.

NotaA saída do seu comando especificado será enviada para você. Você pode ler este email com o programa mail , ou um programa como o pine (ou a versão moderna do pine, chamada alpine ). Você pode baixar esses programas se não os possuir ou instalá-los com o seu gerenciador de pacotes; por exemplo, no Ubuntu , que usa o sistema de gerenciamento de pacotes APT, você pode instalá-los usando o comando apt-get , especificamente: sudo apt-get install mail ou sudo apt-get install alpine .

Especificando o tempo

at usa uma representação muito casual da hora e da data. Ele até conhece alguns horários “comumente usados” que você não pode esperar – sabe que “hora do chá” é tradicionalmente às 16h, por exemplo.

Aqui estão alguns exemplos de horários para os quais você pode passar para agendar um comando. Por exemplo, suponha que o horário atual seja 10:00, terça-feira, 18 de outubro de 2019. As seguintes expressões seriam traduzidas para os seguintes horários:

a expressão:traduziria para:
 noon12:00 18 de outubro de 2019
 midnight12:00 19 de outubro de 2019
 teatime16:00 18 de outubro de 2019
 tomorrow10:00 19 de outubro de 2019
 noon tomorrow12:00 19 de outubro de 2019
 next week10:00 25 de outubro de 2019
 next monday10:00 24 de outubro de 2019
 fri10:00 21 de outubro de 2019
 NOV10:00 18 de novembro de 2019
 9:00 AM9:00 19 de outubro de 2019
 2:30 PM14:30 18 de outubro de 2019
 143014:30 18 de outubro de 2019
 2:30 PM tomorrow14:30 19 de outubro de 2019
 2:30 PM next month14:30 18 de novembro de 2019
 2:30 PM Mon14:30 21 de outubro de 2019
 2:30 PM 10/2114:30 21 de outubro de 2019
 2:30 PM Oct 2114:30 21 de outubro de 2019
 2:30 PM 10/21/201414:30 21 de outubro de 2019
 2:30 PM 21.10.1414:30 21 de outubro de 2019
 now + 30 minutes10:30 18 de outubro de 2019
 now + 1 hour11:00 18 de outubro de 2019
 now + 2 days10:00 20 de outubro de 2019
 4 PM + 2 days16:00 20 de outubro de 2019
 now + 3 weeks10:00 8 de novembro de 2019
 now + 4 months10:00 18 de fevereiro de 2020
 now + 5 years10:00 18 outubro 2024

… portanto, se você executar o comando:

  at now + 10 years

… e, em seguida, insira um comando no prompt > , pressione enter e digite Control-D ; você receberá os resultados do seu comando por e  mail daqui a dez anos.

NotaSe você não especificar um horário na linha de comando, at retornará a seguinte mensagem de erro:

  Garbled time

… e nenhum trabalho será adicionado à fila. Portanto, sempre especifique seu tempo na linha de comando.

Usando atq para ver sua fila

Você pode usar o programa atq para exibir as tarefas na fila no momento . Digite atq para exibir a fila.

  atq
  1 Ter Out 22 09:48:00 2019 uma esperança

Essas informações são da esquerda para a direita: número do trabalho , data , hora , ano , fila e nome de usuário .

O atq listará apenas os trabalhos que pertencem a você – a menos que você seja o superusuário, nesse caso, listará os trabalhos de todos os usuários. Portanto, para listar todas as tarefas atualmente em fila no sistema, digite este comando (se você tiver privilégios de superusuário):

  sudo atq

… e digite sua senha, quando solicitado.

Sintaxe

 at [-V] [-q queue] [-f file] [-mMlv] timespec...
 at [-V] [-q queue] [-f file] [-mMkv] [-t time]
 at -c job [job...]
 atq [-V] [-q queue]
 at [-rd] job [job...]
 atrm [-V] job [job...]
 batch
 at -b

Descrição técnica

comandos de leitura at e batch da entrada padrão ou de um arquivo especificado que deve ser executado posteriormente, usando sh .

at executa comandos em um horário especificado.

atq lista os trabalhos pendentes do usuário, a menos que o usuário seja o superusuário ; nesse caso, os trabalhos de todos são listados. O formato das linhas de saída (uma para cada trabalho) é: número do trabalho , data , hora , ano , fila e nome de usuário .

atrm exclui trabalhos, identificados pelo número do trabalho.

o lote executa comandos quando os níveis de carga do sistema permitem; em outras palavras, quando a média de carga cai abaixo de 1,5 ou o valor especificado na chamada de atd .

At permite especificações de tempo bastante complexas, estendendo o padrão POSIX.2 . Ele aceita horários no formato HH: MM para executar um trabalho em um horário específico do dia. (Se esse horário já passou, o dia seguinte é assumido.) Você também pode especificar meia-noite , meio-dia ou hora do chá (16:00) e pode ter um horário do dia com o sufixo AM ou PM para executar pela manhã ou tarde. Você também pode dizer em que dia o trabalho será executado, fornecendo uma data no formulário nome do mês dia com um ano opcional ou uma data no formato MMDD [CC] AA , MM / DD / [CC] AA , DD.MM. [CC] AA ou [CC] AA-MM-DD . A especificação de uma data deve seguir a especificação da hora do dia. Você também pode fornecer horários como agora + contar unidades de tempo , em que as unidades de tempo podem ser minutos, horas, dias ou semanas e pode dizer para executar o trabalho hoje, sufixando o horário com hoje e amanhã. sufixando a hora com amanhã.

Por exemplo, para executar um trabalho às 16h daqui a três dias, você faria às 16h + 3 dias , para executar um trabalho às 10h do dia 31 de julho, às 10h do dia 31 de julho e para executar um trabalho às 1h do dia seguinte , você faria às 01:00 amanhã .

A definição da especificação de horário pode ser encontrada em / usr / share / doc / at / timespec .

Para at e batch , os comandos são lidos a partir da entrada padrão ou do arquivo especificado com a opção -f e executados. O diretório de trabalho , o ambiente (exceto as variáveis BASH_VERSINFO , DISPLAY , EUID , GRUPOS , SHELLOPTS , TERM , UID e _ ) e o umask são retidos a partir do momento da chamada.

Como no momento é implementado como um programa setuid , outras variáveis ​​de ambiente (por exemplo, LD_LIBRARY_PATH ou LD_PRELOAD ) também não são exportadas. Isso pode mudar no futuro. Como solução alternativa, defina essas variáveis ​​explicitamente em seu trabalho.

Um comando at ou batch executado a partir de um shell su reterá o ID do usuário atual. O usuário receberá um erro padrão e uma saída padrão de seus comandos, se houver. O correio será enviado usando o comando / usr / sbin / sendmail . Se at for executado a partir de um shell su , o proprietário do shell de login receberá o email.

O superusuário sempre pode usar esses comandos. Para outros usuários, a permissão para usar at é determinada pelos arquivos /etc/at.allow e /etc/at.deny . Consulte at.allow para obter detalhes.

Opções

-VImprime o número da versão no erro padrão e sai com sucesso.
-q queueUsa a fila especificada. Uma designação de fila consiste em uma única letra; designações de fila válidas variam de a a z e A a Z. A fila a é o padrão para at eb para o lote. Filas com letras mais altas são executadas com maior gentileza. A fila especial ” = ” está reservada para trabalhos em execução no momento.

Se um trabalho for enviado para uma fila designada com uma letra maiúscula, o trabalho será tratado como se tivesse sido enviado para lote no momento do trabalho. Quando o tempo é atingido, as regras de processamento em lote com relação à média de carga são aplicadas. Se o atq receber uma fila específica, ele mostrará apenas os trabalhos pendentes nessa fila.

-mEnvie email para o usuário quando o trabalho for concluído, mesmo se não houver saída.
-MNunca envie email para o usuário. Em outras palavras, execute o comando, mas não notifique o usuário sobre sua saída.
-f fileLê o trabalho do arquivo em vez da entrada padrão.
-t timeExecute o trabalho no momento , fornecido no formato [[ CC ] AA ] MMDDhhmm [ . ss ]
-euExecutar at -l é o mesmo que executar atq ; exibe todas as filas nos trabalhos.
-rÉ o mesmo que executar o atrm . Remove um trabalho da fila de at .
-dTambém é um apelido para atrm .
-bÉ um alias para lote .
-vMostra a hora em que o trabalho será executado antes de ler o trabalho. Os horários exibidos estarão no formato “Qui 20 de fevereiro às 14:50:00 1997”.
-cOs gatos são os trabalhos listados na linha de comando para a saída padrão.

arquivos

/ var / spool / cron / atjobs
/ var / spool / cron / atspool
/ proc / loadavg
/ var / run / utmp
/etc/at.allow
/etc/at.deny

Exemplos

  às -m 01:35 <my-at-jobs.txt

Execute os comandos listados no arquivo ‘ my-at-jobs.txt ‘ às 1:35 . Toda a saída do trabalho será enviada para o usuário que está executando a tarefa. Quando este comando foi inserido com sucesso, você receberá um prompt semelhante ao exemplo abaixo:

  comandos serão executados usando / bin / sh
 trabalho 1 em Tue Dec 24 00:22:00 2019
  at -l

Este comando listará cada um dos trabalhos agendados em um formato como o seguinte:

  1 Wed Dez 24 00:22:00 2003

… é o mesmo que executar o comando atq .

  em -r 1

Exclui o trabalho 1 . Este comando é o mesmo que executar o comando atrm 1 .

  atrm 23

Exclui o trabalho 23. Este comando é o mesmo que executar o comando em -r 23 .

crontab – Exiba e edite uma lista de tarefas para o sistema executar em intervalos regulares.

13 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.