Automatiza tus tareas con Bash y Cron

Aprende a automatizar tareas en Linux usando scripts Bash y cron, optimizando la gestión de servidores y procesos repetitivos.

Automatiza tus tareas con Bash y Cron

La automatización es una de las habilidades más valiosas para cualquier administrador de sistemas o desarrollador.
Gracias a herramientas como Bash y Cron, puedes programar tareas que se ejecuten automáticamente, ahorrando tiempo y reduciendo errores humanos.

En esta guía aprenderás cómo crear un script Bash y cómo programarlo con Cron para que se ejecute de manera periódica.


Crear un script Bash

Comienza escribiendo un script simple. Por ejemplo, un script para realizar un respaldo de base de datos:

1
2
3
#!/bin/bash
echo "Backup de la base de datos iniciado"
# comando de backup aquí

Guárdalo como backup.sh en el directorio deseado, por ejemplo /usr/local/bin/ o /home/usuario/scripts/.

Este script puede incluir cualquier comando o secuencia de tareas que desees automatizar: copias de seguridad, limpieza de logs, sincronización de archivos, actualizaciones, etc.


Hacerlo ejecutable

Antes de poder ejecutarlo, debes dar permisos de ejecución al archivo:

1
chmod +x backup.sh

Puedes probarlo ejecutándolo manualmente:

1
./backup.sh

Si todo funciona correctamente, verás el mensaje en consola.
Recuerda que también puedes revisar logs o redirigir la salida del script a un archivo, por ejemplo:

1
./backup.sh >> /var/log/backup.log 2>&1

Programar el script con Cron

Cron es un demonio del sistema que permite programar tareas recurrentes (llamadas cron jobs).

Edita la tabla de Cron con:

1
crontab -e

Agrega una línea como esta:

1
0 2 * * * /ruta/a/backup.sh

Esto ejecutará el script todos los días a las 2:00 AM.
La sintaxis de Cron sigue el formato:

1
2
3
4
5
6
7
8
┌───────────── minuto (0 - 59)
│ ┌───────────── hora (0 - 23)
│ │ ┌───────────── día del mes (1 - 31)
│ │ │ ┌───────────── mes (1 - 12)
│ │ │ │ ┌───────────── día de la semana (0 - 7) (domingo = 0 o 7)
│ │ │ │ │
│ │ │ │ │
* * * * * comando a ejecutar

Por ejemplo:

  • 0 3 * * 1 → Ejecuta todos los lunes a las 3:00 AM
  • */15 * * * * → Ejecuta cada 15 minutos
  • @reboot → Ejecuta el comando al iniciar el sistema

Consejos útiles

  • Usa rutas absolutas dentro del script (/usr/bin/pg_dump en lugar de pg_dump).
  • Redirige salidas de error a un log para detectar fallos:
    1
    
    /ruta/a/backup.sh >> /var/log/backup.log 2>&1
    
  • Comprueba los logs de Cron si algo no funciona:
    1
    
    sudo grep CRON /var/log/syslog
    
  • Usa crontab -l para listar las tareas programadas.

Conclusión

Con Bash + Cron, puedes automatizar casi cualquier tarea repetitiva en tu servidor: desde respaldos y actualizaciones, hasta mantenimiento y reportes automáticos.

Implementar una estrategia de automatización no solo mejora la eficiencia, sino que también garantiza consistencia y disponibilidad en tus operaciones diarias.

Recuerda: un buen sysadmin no trabaja más, trabaja más automatizado.