Tengo un cuadro de Debian con algunos trabajos programados usando at
. Sé que puedo enumerar los trabajos con su tiempo atq
, pero ¿hay alguna forma de imprimir su contenido, además de mirar /var/spool/cron/atjobs
?
34
Tengo un cuadro de Debian con algunos trabajos programados usando at
. Sé que puedo enumerar los trabajos con su tiempo atq
, pero ¿hay alguna forma de imprimir su contenido, además de mirar /var/spool/cron/atjobs
?
at -c jobnumber
enumerará un solo trabajo. Si desea verlos todos, puede crear un script como
#!/bin/bash
MAXJOB=$(atq | head -n1 | awk '{ print $1; }')
for each in $(seq 1 $MAXJOB); do echo "JOB $each"; at -c $each; done
Probablemente hay una forma más corta de hacerlo, me lo saqué de la cabeza :)
at -c $(atq | cut -f 1)
ofor each in $(atq | cut -f 1)
evitará los errores "No se pueden encontrar los trabajos". (Además, Bash no tienefor ((each=1; each<=MAXJOB; each++))
necesidad de hacerloseq
. Si le preocupa la portabilidad, entonces#!/bin/sh
.)awk
,atq | awk '{ system("at -c " $1) }'
Sobre la base de las respuestas anteriores, esto enumera la línea de cada trabajo para
atq
mostrar el número de trabajo y la hora programada y luego solo el comando que se ejecutará, ordenado cronológicamente (en lugar del número de trabajo):produciendo, por ejemplo
fuente
Un enfoque mucho más simple:
También puede mirar a cada uno
less
por turno, lo que podría ser más claro:fuente
He creado un comando
atqc
para esto ("atq con comando"). Una función bash. Ejecute esto en la línea de comando bash (comando de terminal). O póngalo en el~/.bashrc
archivo para que esté disponible para más tarde:Pruébalo:
Eso funciona para RHEL7 con la
at -V
versión 3.1.13.Ubuntu 16.04 con la
at -V
versión 3.1.18 tiene un formato de salida ligeramente diferenteat -c N
, por lo que en mi servidor Ubuntu esto funciona:fuente