Lösung 1:
at -c jobnumber
listet einen einzelnen Job auf. Wenn Sie alle sehen möchten, können Sie ein Skript wie
#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done
Wahrscheinlich gibt es einen kürzeren Weg, das ist mir gerade aus dem Kopf gegangen :)
Lösung 2:
Aufbauend auf früheren Antworten listet dies die Zeile jedes Jobs ab atq
auf zeigt Jobnummer und geplante Zeit und dann nur den auszuführenden Befehl, chronologisch sortiert (statt Jobnummer):
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
produzieren, z.
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
Lösung 3:
Ein viel einfacherer Ansatz:
for j in $(atq | cut -f 1); do at -c "$j"; done
Sie können sich auch alle in less
ansehen was wiederum klarer sein könnte:
for j in $(atq | cut -f 1); do at -c "$j" | less; done
Lösung 4:
Ich habe den Befehl atqc
erstellt dafür ("atq mit Befehl"). Eine Bash-Funktion. Führen Sie dies auf der Bash-Befehlszeile (Terminal-Befehl) aus. Oder fügen Sie es in ~/.bashrc
ein Datei, um sie für später verfügbar zu machen:
atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }
Testen Sie es:
atqc
Das funktioniert für RHEL7 mit at -V
Version 3.1.13.
Ubuntu 16.04 mit at -V
Version 3.1.18 hat ein etwas anderes Ausgabeformat in at -c N
, also auf meinem Ubuntu-Server funktioniert das:
atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}