Automatiza Linux rápido y seguro
Automatizar tareas con shell scripting básico es uno de los primeros pasos para dejar atrás el trabajo manual repetitivo y empezar a pensar como un DevOps. No necesitas escribir scripts complejos ni dominar Bash a profundidad desde el primer día. Con unas cuantas estructuras simples y el uso inteligente de herramientas estándar de Linux, puedes ahorrar tiempo, reducir errores y ganar consistencia operativa.
En este tutorial veremos cómo automatizar tareas simples usando shell scripting básico, con ejemplos prácticos que puedes aplicar hoy mismo en tu entorno local, servidores o pipelines iniciales.
¿Por qué automatizar tareas con shell scripting básico?
En muchos equipos, todavía es común encontrar tareas como:
- Limpieza manual de logs
- Copias de seguridad ejecutadas “a mano”
- Verificación repetitiva de procesos o servicios
- Comandos largos copiados desde un documento
Estas tareas no solo consumen tiempo, también introducen errores humanos. El shell scripting básico permite encapsular ese conocimiento operativo en scripts simples, reproducibles y fáciles de versionar.
La automatización no empieza con Kubernetes ni Terraform. Empieza aquí.
Preparando el entorno para shell scripting
Antes de escribir tu primer script, asegúrate de tener lo básico:
- Un sistema Linux o macOS
- Acceso a una terminal
- Un editor de texto (nano, vim, VS Code, etc.)
Crea un archivo nuevo:
nano backup.sh
Todo script debe empezar con el shebang:
#!/bin/bash
Luego dale permisos de ejecución:
chmod +x backup.sh
A partir de aquí, todo lo que escribas puede convertirse en una tarea automatizada.
Variables: el primer bloque de automatización
Las variables permiten que tus scripts sean reutilizables y fáciles de modificar.
Ejemplo simple:
#!/bin/bash BACKUP_DIR="/opt/backups" DATE=$(date +%F) echo "Creando backup en $BACKUP_DIR con fecha $DATE"
Tip DevOps:
Usa variables al inicio del script para configuración, y deja la lógica más abajo. Esto facilita mantenimiento y lectura por otros.
Automatizando backups simples con tar
Un caso clásico de shell scripting básico es automatizar backups.
Ejemplo: backup de un directorio web.
#!/bin/bash SOURCE_DIR="/var/www" BACKUP_DIR="/opt/backups" DATE=$(date +%F) mkdir -p "$BACKUP_DIR" tar -czf "$BACKUP_DIR/web-$DATE.tar.gz" "$SOURCE_DIR" echo "Backup completado: web-$DATE.tar.gz"
Con esto ya eliminaste:
- Comandos manuales
- Riesgo de olvidar fechas
- Errores de tipeo
Uso de condicionales para controlar errores
Un script sin validaciones es una bomba de tiempo.
Ejemplo básico usando if:
if [ -d "$SOURCE_DIR" ]; then tar -czf "$BACKUP_DIR/web-$DATE.tar.gz" "$SOURCE_DIR" else echo "El directorio no existe" exit 1 fi
Tip DevOps:
Siempre valida precondiciones (directorios, permisos, variables). Esto es clave cuando el script crece o se ejecuta automáticamente.
Automatizando limpieza de archivos antiguos
Otra tarea común: limpiar archivos viejos.
Ejemplo: eliminar backups de más de 7 días.
find /opt/backups -type f -mtime +7 -name "*.tar.gz" -exec rm {} \;
Automatizado dentro de un script:
#!/bin/bash
BACKUP_DIR="/opt/backups"
find "$BACKUP_DIR" -type f -mtime +7 -name "*.tar.gz" -exec rm {} \;
echo "Backups antiguos eliminados"
Este tipo de shell scripting básico es extremadamente común en entornos productivos.
Combinando comandos: el verdadero poder del shell
El shell no es solo Bash. Es la composición de herramientas pequeñas.
Ejemplo: monitorear uso de disco y alertar.
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -gt 80 ]; then
echo "Uso de disco crítico: $USAGE%"
fi
Aquí combinamos:
dfawksed- condicionales
Tip DevOps:
Aprende a encadenar comandos, no a memorizar herramientas aisladas.
Bucles para tareas repetitivas
Los bucles permiten automatizar acciones repetidas sobre múltiples elementos.
Ejemplo: verificar múltiples servicios.
for service in nginx docker ssh
do
systemctl is-active --quiet $service
if [ $? -ne 0 ]; then
echo "Servicio caído: $service"
fi
done
Esto reemplaza múltiples comandos manuales por un solo script reproducible.
Automatizando con cron: llevar el script a producción
Un script que no se ejecuta automáticamente sigue siendo manual.
Edita el crontab:
crontab -e
Ejemplo: ejecutar backup diario a las 2 AM.
0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1
Tip DevOps:
Siempre redirige salida estándar y errores a logs. Diagnosticarás problemas en minutos, no horas.
Buenas prácticas en shell scripting básico
Algunos consejos clave desde experiencia real:
- Usa
set -epara detener el script ante errores - Agrega
echoclaros para logging - Evita hardcodear rutas críticas
- Versiona tus scripts en Git
- Documenta el propósito al inicio del archivo
Ejemplo de encabezado:
# Script: backup.sh # Autor: Angel Rengifo # Descripción: Backup diario de directorio web
De scripts simples a automatización real
El shell scripting básico no compite con herramientas modernas. Las complementa.
Muchos pipelines CI/CD, contenedores y sistemas de configuración siguen usando scripts shell como pegamento entre herramientas. Dominar este nivel te da una base sólida para avanzar hacia automatización más avanzada.
Conclusión
Automatizar tareas con shell scripting básico es una habilidad fundamental para cualquier profesional que trabaje con Linux, servidores o entornos cloud. No se trata de escribir scripts perfectos, sino de eliminar trabajo manual innecesario y ganar control operativo paso a paso.
Si hoy automatizas una tarea pequeña, mañana estarás automatizando sistemas completos.
¿Qué tarea manual sigues haciendo hoy que podrías automatizar con un simple script?
Cuéntalo en los comentarios o comparte este artículo con alguien que aún vive en la terminal copiando comandos.


Deja un comentario