Présentation :
La commande atq me donne la liste des jobs en attente d'exécution et leurs temps d'exécution. Chaque ligne commençant par le numéro de travail.
La commande at -c JobNumber me donne le contenu du travail, y compris les variables d'environnement.
Ce que je voulais, c'est une commande qui me donnerait la liste des travaux (tout comme la commande atq ) mais développé afin que chaque ligne de travail soit suivie des commandes qui seront exécutées, excluant leurs variables d'environnement. ex.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… n'a pas pu trouver une telle commande pour afficher ceci. J'ai donc créé ce script bash qui fait le travail :
#!/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