Pendahuluan:
Perintah atq memberi saya daftar pekerjaan yang menunggu untuk dieksekusi dan waktu pelaksanaannya. Setiap baris dimulai dengan nomor pekerjaan.
Perintah di -c JobNumber memberi saya konten pekerjaan termasuk variabel lingkungan.
Yang saya inginkan adalah perintah yang akan memberi saya daftar pekerjaan (seperti perintah atq ) tetapi diperluas sehingga setiap baris pekerjaan diikuti oleh perintah yang akan dijalankan, tidak termasuk variabel lingkungan mereka. mis.34 Tue Jan 17 10:22:00 2017 a root
Commands
35 Tue Jan 24 17:50:00 2017 a root
Commands
28 Tue Dec 13 23:00:00 2016 a root
Commands
24 Mon Nov 14 20:27:00 2016 a root
Commands
31 Sun Jan 15 00:21:00 2017 a root
Commands
Humm… tidak dapat menemukan perintah seperti itu untuk menampilkan ini. Jadi saya membuat skrip bash ini yang berfungsi:
#!/bin/bash
# Description: Displays all 'at' jobs and their respective commands
# Syntax: atlist.sh
# Changes: 05.11.2016 First implementation
########################################################################
# Get the short jobs list and expand from there
atq | while read line ; do
jobnr=$(echo $line | awk '{print $1}')
echo $line
# Pickup all the command lines after first line matching '}'.
# This excludes all the environment variables and the at exit line.
# Exclude the matching '}' line and empty lines
# Add an offset of 8 chars to each command line.
at -c $jobnr | sed -e '1,/^\}/d' -e '/^$/d' -e 's/^/ /'
done