Solución 1:
at -c jobnumber
enumerará un solo trabajo. Si desea verlos todos, puede crear un 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
Probablemente haya una forma más corta de hacerlo, simplemente me lo quité de la cabeza :)
Solución 2:
Sobre la base de las respuestas anteriores, esto enumera la línea de cada trabajo desde atq
mostrando el número de trabajo y la hora programada y luego solo el comando que se ejecutará, ordenado cronológicamente (en lugar del número de trabajo):
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
producir, por ej.
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
Solución 3:
Un enfoque mucho más simple:
for j in $(atq | cut -f 1); do at -c "$j"; done
También puedes mirar cada uno en less
a su vez, lo que podría ser más claro:
for j in $(atq | cut -f 1); do at -c "$j" | less; done
Solución 4:
Creé el comando atqc
para esto ("atq con comando"). Una función bash. Ejecute esto en la línea de comando de bash (comando de terminal). O ponlo en el ~/.bashrc
archivo para que esté disponible para más adelante:
atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }
Pruébalo:
atqc
Eso funciona para RHEL7 con at -V
versión 3.1.13.
Ubuntu 16.04 con at -V
la versión 3.1.18 tiene un formato de salida ligeramente diferente en at -c N
, así que en mi servidor Ubuntu esto funciona:
atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}