Soluzione 1:
at -c jobnumber
elencherà un singolo lavoro. Se vuoi vederli tutti, puoi creare uno script come
#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done
Probabilmente c'è un modo più breve per farlo, me lo sono appena tolto dalla testa :)
Soluzione 2:
Basandosi sulle risposte precedenti, questo elenca la riga di ogni lavoro da atq
mostrando il numero del lavoro e l'ora pianificata e poi solo il comando da eseguire, ordinato cronologicamente (anziché il numero del lavoro):
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
produrre, ad es.
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
Soluzione 3:
Un approccio molto più semplice:
for j in $(atq | cut -f 1); do at -c "$j"; done
Puoi anche guardare ognuno in less
a sua volta, il che potrebbe essere più chiaro:
for j in $(atq | cut -f 1); do at -c "$j" | less; done
Soluzione 4:
Ho creato il comando atqc
per questo ("atq con comando"). Una funzione bash. Esegui questo sulla riga di comando bash (comando terminale). Oppure inseriscilo nel ~/.bashrc
file per renderlo disponibile per dopo:
atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }
Provalo:
atqc
Funziona per RHEL7 con at -V
versione 3.1.13.
Ubuntu 16.04 con at -V
la versione 3.1.18 ha un formato di output leggermente diverso in at -c N
, quindi sul mio server Ubuntu funziona:
atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}