Automatizar tareas de mantenimiento con Cron

Contents

Automatizar tareas de mantenimiento con Cron

Cron es una herramienta fundamental en sistemas Unix y Linux para programar la ejecución de tareas de mantenimiento de forma periódica. Gracias a su flexibilidad y bajo consumo de recursos, se ha convertido en el estándar de facto para automatizar scripts, copias de seguridad, limpiezas de log y mucho más.

1. ¿Qué es Cron y cómo funciona

Cron es un demonio (daemon) que se ejecuta en segundo plano y comprueba cada minuto si existe alguna tarea programada en los archivos de configuración (crontabs). Cuando detecta una coincidencia entre la hora actual y la expresión temporal definida, lanza el comando o script correspondiente.

  • Daemon: proceso cron responsable de leer configuraciones y ejecutar las tareas.
  • Crontab: archivo de configuración que define las tareas y su frecuencia.
  • Syslog: registro donde cron apunta información sobre ejecuciones y posibles errores.

2. Componentes clave en la configuración

Elemento Descripción Ubicación típica
/etc/crontab Configuración global del sistema. /etc/crontab
/etc/cron.d/ Directorios para archivos crontab adicionales. /etc/cron.d/
crontab -e Crontab personalizado por usuario. /var/spool/cron/

3. Sintaxis de la expresión Cron

Cada entrada en un crontab consta de seis campos:

Campo Valores Descripción
Minuto 0–59 Minuto de la hora
Hora 0–23 Hora del día
Día del mes 1–31 Día del mes
Mes 1–12 Mes del año
Día de la semana 0–7 (0 y 7 DOM) Día de la semana
Comando Script o comando a ejecutar

Se pueden usar caracteres especiales:

  • para todos los valores posibles.
  • , para separar valores (p.ej. 1,15 para los días 1 y 15).
  • para rangos (p.ej. 9-17 horas laborables).
  • / para incrementos (p.ej. /5 cada 5 minutos).

4. Ejemplos prácticos

  • 0 2 – Ejecuta una copia de seguridad diaria a las 02:00.
  • /15 – Limpia archivos temporales cada 15 minutos.
  • 0 0 1 – Envía un informe mensual el primer día de cada mes a medianoche.
  • 0 3 0 – Optimiza la base de datos cada domingo a las 03:00.

5. Ventajas y buenas prácticas

  • Consistencia: Todas las tareas se ejecutan en horarios controlados.
  • Auditoría: Cron registra en /var/log/cron o syslog.
  • Modularidad: Separar scripts en /etc/cron.daily, /etc/cron.hourly, etc.
  • Notificaciones: Redirigir salida estándar y errores a archivos o correos.
  • Seguridad: Evitar permisos excesivos y validar rutas absolutas.

6. Monitoreo y solución de problemas

  • Verificar logs en /var/log/cron o /var/log/syslog.
  • Probar manualmente el script con el mismo usuario de Cron.
  • Comprobar variables de entorno Cron no carga .bashrc.
  • Usar MAILTO en crontab para recibir salidas.

7. Recursos y referencias

Artículo generado para ofrecer una guía completa sobre la automatización de tareas de mantenimiento en sistemas Unix/Linux con Cron.


Acepto donaciones de BAT's mediante el navegador Brave 🙂



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *