Automatizar tareas con at

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 o at -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!

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *