Como faço para imprimir o conteúdo em trabalhos?

23

Eu tenho uma caixa do Debian com algumas tarefas agendadas usando at . Eu sei que posso listar os jobs com seus tempos usando atq , mas existe alguma maneira de imprimir seu conteúdo, além de espreitar /var/spool/cron/atjobs ?

    
por che 26.08.2010 / 07:31

4 respostas

29

at -c jobnumber listará um único trabalho. Se você quiser ver todos eles, crie um script como

#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done 

Provavelmente há um jeito mais curto de fazer isso, eu acabei de tirar isso da cabeça:)

    
por 26.08.2010 / 07:41
5

Com base nas respostas anteriores, isso lista a linha de cada trabalho de atq mostrando o número do trabalho e a hora agendada e, em seguida, apenas o comando a ser executado, classificado cronologicamente (em vez de número do trabalho):

for j in $(atq | sort -k6,6 -k3,3M -k4,4 -k5,5 |cut -f 1); do atq |grep -P "^$j\t" ;at -c "$j" | tail -n 2; done

produzindo, e.

48  Fri Mar 10 15:13:00 2017 a root
/usr/local/bin/a-command

47  Fri Mar 10 15:14:00 2017 a root
/usr/local/bin/another-command
    
por 10.03.2017 / 22:12
3

Uma abordagem muito mais simples:

for j in $(atq | cut -f 1); do at -c "$j"; done

Você também pode ver cada um deles em less , o que pode ser mais claro:

for j in $(atq | cut -f 1); do at -c "$j" | less; done
    
por 10.05.2016 / 00:35
0

Eu criei o comando atqc para isso ("atq com comando"). Uma função bash. Execute isso na linha de comando do bash (comando do terminal). Ou coloque-o no arquivo ~/.bashrc para disponibilizá-lo para mais tarde:

atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n/s;print"$q $2"'; }

Teste:

atqc

Isso funciona para o RHEL7 com at -V versão 3.1.13.

O Ubuntu 16.04 com at -V versão 3.1.18 tem um formato de saída ligeiramente diferente em at -c N , então no meu servidor Ubuntu isso funciona:

atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}
    
por 30.10.2018 / 09:37