Introducción
Los trabajos cron son una herramienta poderosa en Bash para automatizar tareas repetitivas. cron
es un demonio que ejecuta comandos o scripts a intervalos de tiempo específicos definidos por el usuario. En esta sección, aprenderás cómo configurar y gestionar trabajos cron para automatizar tareas en tu sistema.
Conceptos Clave
- Cron Daemon (
cron
): Un servicio que ejecuta comandos en momentos específicos. - Crontab: Un archivo de configuración que especifica los comandos a ejecutar y sus horarios.
- Sintaxis de Crontab: La estructura que define cuándo y con qué frecuencia se ejecutan los comandos.
Configuración de Crontab
Acceso a Crontab
Para editar el archivo crontab del usuario actual, utiliza el siguiente comando:
Este comando abrirá el archivo crontab en el editor de texto predeterminado.
Sintaxis de Crontab
La sintaxis de una línea en el archivo crontab es la siguiente:
Cada asterisco representa un campo de tiempo:
Campo | Descripción | Valores Permitidos |
---|---|---|
Minuto | Minuto del día | 0-59 |
Hora | Hora del día | 0-23 |
Día del mes | Día del mes | 1-31 |
Mes | Mes del año | 1-12 |
Día de la semana | Día de la semana | 0-7 (0 y 7 son domingo) |
Ejemplos de Crontab
-
Ejecutar un script cada día a las 2:30 AM:
30 2 * * * /ruta/al/script.sh
-
Ejecutar un comando cada lunes a las 5:00 PM:
0 17 * * 1 /ruta/al/comando
-
Ejecutar un script cada 15 minutos:
*/15 * * * * /ruta/al/script.sh
-
Ejecutar un comando el primer día de cada mes a la medianoche:
0 0 1 * * /ruta/al/comando
Ejercicio Práctico
Ejercicio 1: Crear un Trabajo Cron
Objetivo: Crear un trabajo cron que ejecute un script de respaldo cada día a las 3:00 AM.
-
Crear el Script de Respaldo:
Crea un archivo llamado
backup.sh
con el siguiente contenido:#!/bin/bash tar -czf /ruta/al/respaldo/backup_$(date +\%F).tar.gz /ruta/al/directorio_a_respaldo
Asegúrate de dar permisos de ejecución al script:
chmod +x /ruta/al/backup.sh
-
Configurar el Trabajo Cron:
Abre el archivo crontab:
crontab -e
Añade la siguiente línea para ejecutar el script cada día a las 3:00 AM:
0 3 * * * /ruta/al/backup.sh
Solución
El archivo crontab debería verse así:
Retroalimentación y Consejos
Errores Comunes
- Permisos Insuficientes: Asegúrate de que el script tenga permisos de ejecución.
- Rutas Incorrectas: Usa rutas absolutas en el archivo crontab para evitar errores de ruta.
- Sintaxis Incorrecta: Verifica que la sintaxis de crontab sea correcta. Un solo error puede hacer que el trabajo no se ejecute.
Consejos Adicionales
-
Verificar la Ejecución: Usa
grep CRON /var/log/syslog
para verificar si el trabajo cron se ha ejecutado correctamente. -
Redirigir Salida y Errores: Redirige la salida y los errores a un archivo de log para facilitar la depuración:
0 3 * * * /ruta/al/backup.sh >> /ruta/al/backup.log 2>&1
Conclusión
En esta sección, has aprendido cómo configurar y gestionar trabajos cron para automatizar tareas en tu sistema. Los trabajos cron son una herramienta esencial para cualquier administrador de sistemas o desarrollador que necesite ejecutar tareas repetitivas de manera automática. Con esta base, estás listo para explorar más técnicas avanzadas de automatización en Bash.
Curso de Programación en Bash
Módulo 1: Introducción a Bash
- ¿Qué es Bash?
- Configurando tu Entorno
- Navegación Básica en la Línea de Comandos
- Entendiendo el Shell
Módulo 2: Comandos Básicos de Bash
- Operaciones con Archivos y Directorios
- Comandos de Procesamiento de Texto
- Permisos y Propiedad de Archivos
- Redirección y Tuberías
Módulo 3: Fundamentos de Scripting
Módulo 4: Scripting Intermedio
Módulo 5: Técnicas Avanzadas de Scripting
- Operaciones Avanzadas con Archivos
- Gestión de Procesos
- Manejo de Errores y Depuración
- Expresiones Regulares
Módulo 6: Trabajando con Herramientas Externas
Módulo 7: Automatización y Programación
Módulo 8: Mejores Prácticas y Optimización
- Escribiendo Código Legible
- Optimizando Scripts en Bash
- Consideraciones de Seguridad
- Control de Versiones con Git