Saltar la navegación

batch

El comando batch trabaja de una forma similar al comando at que hemos visto, pero tiene algunas diferencias, como que las tareas a ejecutar solo pueden darse interactivamente. Además, no se puede especificar una fecha/hora de ejecución, las tareas simplemente se agregan a una cola y se van ejecutando en cuanto la carga promedio del sistema sea inferior a 1.5.

La forma de ejecutar batch es la siguiente:

$ batch
warning: commands will be executed using /bin/sh
at Sun Oct 28 11:45:00 2023
at>

Como se ve, aparece el mismo prompt que con el comando at para introducir las tareas, y para terminar, en una línea en blanco se pulsa ctrl+D.

Como se ha dicho, batch ejecuta las tareas cuando los niveles de carga del sistema lo permiten, y por defecto en Debian, la carga promedio debe estar por debajo de 1.5, pero este valor lo podemos cambiar a nuestro gusto ejecutando el demonio atd con la opción -l. Se suele aconsejar que el factor de carga limitante para un sistema con n CPUs sea de n-1.

# atq -l 0.8

Otra opción de atd relacionada con batch es -b, que se utiliza para especificar el intervalo mínimo en segundos entre el inicio de dos trabajos lanzados con batch. El valor por defecto es de 60 segundos.

# atq -b 120

El control de acceso a batch se hace también a través de los ficheros /etc/at.allow y /etc/at.deny.

Por último, batch es realmente un script que llama al comando at:

$ cat /usr/bin/batch 
#! /bin/sh -e
if [ "$#" -gt 0 ]; then
echo batch accepts no parameters
exit 1
fi
prefix=/usr
exec_prefix=${prefix}
exec ${exec_prefix}/bin/at -qb now

Como vemos, las tareas de batch se envían con at a la cola b para su ejecución inmediata, lo cual se hará o se esperará en función de la carga promedio actual del sistema.

NOTA:

Una explicación de lo que significa la carga y la carga promedio de un sistema, está en el comando uptime, que se utiliza entre otras cosas para consultar la carga promedio del sistema.