Introducción a la automatización con at en Linux
En entornos Linux, la automatización de tareas es esencial para optimizar el uso de recursos, reducir errores manuales y garantizar la puntualidad de procesos críticos. Aunque cron suele llevarse todo el protagonismo, existe una herramienta ligera y muy versátil llamada at que permite programar la ejecución de comandos o scripts en un momento puntual del futuro. A continuación, exploraremos en detalle su instalación, uso, ejemplos prácticos y buenas prácticas.
¿Qué es at
at es un programa que lee de stdin una serie de órdenes para ejecutarlas una sola vez en una fecha y hora específica. A diferencia de cron, que repite tareas de forma periódica, at está pensado para trabajos puntuales.
Para más detalles, puede consultarse la página oficial del manual en línea:
at(1) — Linux manual page
Instalación y requisitos básicos
- Sistema: Cualquier distribución Linux moderna.
- Paquete: Normalmente el paquete se llama at o atd.
- Servicio: atd debe estar arrancado. Se encarga de ejecutar las tareas programadas.
Ejemplo de instalación en Debian/Ubuntu:
sudo apt update sudo apt install at
Arrancar y habilitar el servicio:
sudo systemctl start atd sudo systemctl enable atd
Uso básico de at
1. Programar una tarea
Para programar una tarea con at, se ejecuta:
echo comando_a_ejecutar at hora
O bien abrir un shell interactivo de at:
at 18:30 atgt /ruta/al/script.sh atgt
2. Formatos de fecha y hora
Formato | Ejemplo | Descripción |
---|---|---|
HH:MM | 14:00 | Hoy a las 2 PM |
now N unit | now 2 hours | En dos horas |
MMDDYY | 123123 | 31/12/23 |
Gestión de tareas pendientes
- Listar tareas:
atq
. Muestra ID, fecha y cola. - Eliminar tarea:
atrm ltIDgt
oat -r ltIDgt
.
Ejemplos avanzados
1. Backup nocturno de una carpeta
echo tar czf /backups/mi_proyecto_(date %F).tar.gz /var/www/mi_proyecto at 02:00
Se crea un archivo comprimido cada noche a las 02:00 con la fecha en el nombre.
2. Envío de informe por correo
cat /ruta/al/informe.txt mail -s Informe diario tu@empresa.com at 08:00 tomorrow
El informe generado previamente se envía por email a primera hora.
3. Limpieza de archivos temporales
at now 1 day << EOF find /tmp -type f -mtime 7 -delete EOF
Eliminación de archivos de más de 7 días, programada automáticamente cada día.
Buenas prácticas y recomendaciones
- Entorno controlado: Especificar PATH o rutas absolutas.
- Permisos: Evitar ejecutar con root si no es necesario.
- Registro de salidas: Redirigir stdout y stderr a archivos de log.
- Pruebas previas: Probar los comandos manualmente antes de programar.
- Envíos interactivos: Comillas en bloque (here-doc) permiten secuencias complejas.
Solución de problemas comunes
- Permiso denegado: Compruebe que el servicio atd está activo y su usuario está en el archivo /etc/at.allow o no está en /etc/at.deny.
- Hora errónea: Verifique la zona horaria del sistema (
timedatectl
). - Comandos no ejecutados: Asegúrese de usar rutas absolutas y variables definidas.
Conclusión
La herramienta at es un complemento perfecto a cron cuando necesitamos ejecutar tareas de forma puntual. Su sencillez y flexibilidad la convierten en un recurso imprescindible en el arsenal de cualquier administrador de sistemas. Siguiendo las buenas prácticas, configurando correctamente atd y cuidando los entornos de ejecución, es posible automatizar procesos críticos de manera fiable. ¡Empieza hoy mismo a ahorrar tiempo y mejorar la eficiencia de tu infraestructura Linux!
Leave a Reply