Inicio > Gestión de procesos > batch

batch: Ejecutar comandos cuando la carga del sistema es baja

El comando batch espera hasta que la carga promedio del sistema caiga por debajo de 0.8 y luego ejecuta los comandos especificados. Esto es útil para procesar trabajos en segundo plano de manera eficiente, sin interferir con tareas importantes, utilizando los recursos del sistema.

Descripción general

batch pertenece a la familia de comandos at y es un planificador que monitorea la carga del sistema para ejecutar trabajos cuando esta es baja. Se utiliza principalmente para procesar automáticamente tareas intensivas en recursos durante períodos de baja utilización del sistema. batch utiliza internamente la cola 'b' del comando at, y los trabajos en esta cola solo se ejecutan cuando la carga promedio del sistema es inferior a 0.8.

Características principales

  • Ejecución basada en la carga del sistema: inicia el trabajo cuando la carga promedio es inferior a 0.8
  • Reserva trabajos con una sintaxis similar al comando at
  • Adecuado para procesar tareas intensivas en recursos en segundo plano
  • Posibilidad de notificar al usuario por correo electrónico al completar el trabajo (utilizando opciones de at)

Opciones principales

El comando batch en sí mismo no tiene muchas opciones directas de línea de comandos y, en su mayoría, acepta comandos para ejecutar desde la entrada estándar o un archivo. Las siguientes son las principales formas de pasar comandos a batch.

Métodos de entrada de comandos

Comando generado:

Combina los comandos.

Descripción:

`batch` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Cómo usar el comando batch para ejecutar tareas específicas cuando la carga del sistema es baja.

Reservar un comando simple por entrada estándar

batch
ls -l > /tmp/batch_output.txt
<EOT>

Cuando la carga del sistema sea baja, guardará la lista de archivos del directorio actual en /tmp/batch_output.txt.

Reservar múltiples comandos a través de una tubería (pipe)

echo -e "echo 'Batch job started at $(date)'\nls -a\necho 'Batch job finished'" | batch

Reserva múltiples líneas de comandos a batch usando el comando echo.

Reservar la ejecución de un archivo de script

echo '#!/bin/bash\necho "Hello from batch!" > /tmp/batch_hello.txt\ndate >> /tmp/batch_hello.txt' > my_script.sh
chmod +x my_script.sh
batch -f my_script.sh

Cree el archivo my_script.sh y luego reserve ese script con batch. (my_script.sh debe tener permisos de ejecución).

Instalación

El comando batch es parte del paquete `at`. Es posible que no esté incluido por defecto en la mayoría de las distribuciones de Linux, por lo que si es necesario, puede instalarlo usando los siguientes comandos.

Sistemas basados en Debian/Ubuntu

sudo apt update && sudo apt install at

Sistemas basados en CentOS/RHEL/Fedora

sudo yum install at

Consejos y precauciones

Consejos útiles y puntos a tener en cuenta al usar el comando batch.

Consideraciones principales

  • **Criterio de carga**: batch inicia trabajos cuando la carga promedio del sistema es inferior a 0.8. Este valor puede variar según la configuración del sistema, como los archivos `/etc/at.deny` o `/etc/at.allow`, y se ve afectado por la configuración del demonio `atd`.
  • **Variables de entorno**: Los trabajos ejecutados por batch pueden no heredar las variables de entorno del shell actual. Por lo tanto, se recomienda establecer explícitamente las rutas (PATH) y otras variables de entorno necesarias dentro de los scripts.
  • **Verificación de registros**: Si los trabajos no se ejecutan como se esperaba o si ocurren errores, puede verificar los registros del sistema (por ejemplo, `/var/log/syslog`, `/var/log/messages` o `journalctl -u atd`) para identificar la causa del problema.
  • **Gestión de trabajos**: Puede verificar los trabajos de batch programados usando el comando `atq` y cancelar trabajos usando el comando `atrm`.

Comandos de la misma categoría