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 jobnumberenumerará 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
atqmostrar 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
lesspor turno, lo que podría ser más claro:fuente
He creado un comando
atqcpara 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~/.bashrcarchivo para que esté disponible para más tarde:Pruébalo:
Eso funciona para RHEL7 con la
at -Vversión 3.1.13.Ubuntu 16.04 con la
at -Vversión 3.1.18 tiene un formato de salida ligeramente diferenteat -c N, por lo que en mi servidor Ubuntu esto funciona:fuente