Comandos relacionados con tareas agendadas en Linux

Como vimos en el post anterior, el comando at nos permite agendar una tarea determinada para su ejecución futura por una única vez. En esta ocasión explicaremos cómo utilizar atq, atrm, y batch, otros comandos relacionados con tareas agendadas mediante at. Los mismos nos permitirán ver nuestra propia lista de tareas agendadas (o las de todos los usuarios, si contamos con permisos de root), eliminarlas de manera individual, o hacer que una de ellas se ejecute cuando los niveles de uso del sistema estén por debajo de un umbral dado (útil si nuestro equipo está siendo utilizado de manera intensiva, a fin de no interferir con el resto de los procesos).

Comandos relacionados con tareas agendadas mediante at: uso de atq

Una vez que hayamos agendado una lista de tareas mediante at, nos interesará mostrar un listado de las mismas. Para eso simplemente utilizaremos atq sin ningún argumento. En la salida del comando veremos la identificación de cada tarea (primera columna), la fecha en la cual será ejecutada, la lista en la que se encuentra, y el usuario propietario de la misma. Si queremos mostrar el comando asociado con alguna en particular, usaremos at -c seguido por el identificador de la tarea deseada. La antepenúltima línea de este comando nos mostrará la tarea completa tal cual fue agendada, tal como podemos observar en la Fig. 1:

Uso de atq para mostrar la lista de tareas agendadas
Figura 1 – Uso de atq para mostrar la lista de tareas agendadas

Como vemos, el conocer el identificador de una tarea agendada mediante at (la cual, dicho sea de paso, se conoce más comúnmente como un at job) nos permite averiguar o recordar el comando asociado.

Borrar una tarea agendada

Además, una vez que hayamos identificado una tarea en particular, podremos borrarla si así lo deseamos, utilizando el comando atrm seguido del identificador correspondiente, como vemos en la Fig. 2:

Borrar at jobs con atrm
Figura 2 – Borrar at jobs con atrm

Ejecutar una tarea cuando el nivel de uso del sistema caiga por debajo de un cierto nivel

Si estamos ante un equipo en el que estén corriendo procesos que ocupen el CPU de manera más o menos intensiva, podemos utilizar el comando batch para agendar la ejecución de una tarea para cuando el load average caiga por debajo de 0.8. La sintaxis es idéntica al uso de at. Para correr el comando updatedb en estas condiciones, deberíamos hacer:

echo "updatedb" | batch

Espero que este post sobre comandos relacionados con tareas agendadas mediante at les haya resultado de utilidad. ¡Hasta el próximo!