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`.