Solusi 1:
at -c jobnumber
akan mencantumkan satu pekerjaan. Jika Anda ingin melihat semuanya, Anda dapat membuat skrip seperti
#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done
Mungkin ada cara yang lebih singkat untuk melakukan itu, saya baru saja mengeluarkannya dari kepala saya :)
Solusi 2:
Berdasarkan tanggapan sebelumnya, ini mencantumkan setiap baris pekerjaan dari atq
menampilkan nomor pekerjaan dan waktu yang dijadwalkan, kemudian hanya perintah yang akan dijalankan, diurutkan secara kronologis (bukan nomor pekerjaan):
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
memproduksi, mis.
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
Solusi 3:
Pendekatan yang jauh lebih sederhana:
for j in $(atq | cut -f 1); do at -c "$j"; done
Anda juga dapat melihat masing-masing di less
pada gilirannya, yang mungkin lebih jelas:
for j in $(atq | cut -f 1); do at -c "$j" | less; done
Solusi 4:
Saya telah membuat perintah atqc
untuk ini ("atq dengan perintah"). Fungsi bash. Jalankan ini di baris perintah bash (perintah terminal). Atau taruh di ~/.bashrc
file agar tersedia untuk nanti:
atqc () { atq|perl -ne'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/(marcinDEL\w+).\n(.*?)\n\1/s;print"$q $2"'; }
Ujilah:
atqc
Itu berfungsi untuk RHEL7 dengan at -V
versi 3.1.13.
Ubuntu 16.04 dengan at -V
versi 3.1.18 memiliki format keluaran yang sedikit berbeda di at -c N
, jadi di server Ubuntu saya ini berfungsi:
atqc(){ atq|perl -nE'($q,$j)=/((\d+).*)/;qx(at -c $j)=~/\n}\n(.*?)\s*$/s;say"$q: $1"';}