Introducción:
El comando atq me da la lista de trabajos en espera de ser ejecutados y sus tiempos de ejecución. Cada línea comienza con el número de trabajo.
El comando at -c JobNumber me da el contenido del trabajo, incluidas las variables de entorno.
Lo que quería es un comando que me diera la lista de los trabajos (al igual que el comando atq ) pero ampliado para que cada línea de trabajo vaya seguida de los comandos que se ejecutarán, excluyendo sus variables de entorno. ej.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... no pude encontrar tal comando para mostrar esto. Así que creé este script bash que hace el trabajo:
#!/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