Bash Scripting para DevOps, SREs y Sysadmins: Automatiza tu Infraestructura

Dominar Bash es uno de los superpoderes más valiosos para cualquier perfil técnico que gestiona sistemas. Ya sea para automatizar tareas repetitivas, mantener entornos consistentes o ejecutar acciones masivas con precisión, un buen script puede ahorrar horas… o salvarte en plena madrugada.
Este artículo te da un repaso práctico y directo de Bash scripting aplicado a tareas reales de un DevOps, SRE o sysadmin.
Estructura básica de un script
#!/bin/bash
# Esto es un comentario
echo "Comenzando tarea..."
# Condición
if [ -f /etc/passwd ]; then
echo "El archivo existe"
fi
# Bucle
for i in {1..3}; do
echo "Intento $i"
done
Guarda este archivo como script.sh, dale permisos y ejecútalo:
chmod +x script.sh
./script.sh
Script 1: Verificar si un servicio está activo
#!/bin/bash
SERVICE=$1
if systemctl is-active --quiet "$SERVICE"; then
echo "$SERVICE está activo"
else
echo "$SERVICE NO está activo"
fi
Uso:
./check_service.sh nginx
Script 2: Backup de logs antiguos
#!/bin/bash
SRC="/var/log"
DST="/backup/logs"
DAYS=7
mkdir -p "$DST"
find "$SRC" -type f -mtime +$DAYS -exec tar -rvf "$DST/old_logs.tar" {} \;
Script 3: Test de conectividad a varios endpoints
#!/bin/bash
URLS=("https://google.com" "https://github.com" "https://api.servicio.com")
for URL in "${URLS[@]}"; do
if curl -s --head --fail "$URL" > /dev/null; then
echo "✅ $URL OK"
else
echo "❌ $URL NO responde"
fi
done
Script 4: Limpiar contenedores Docker detenidos
#!/bin/bash
echo "Eliminando contenedores detenidos..."
docker container prune -f
Script 5: Comprobar uso de disco en múltiples servidores
#!/bin/bash
SERVERS=("srv1" "srv2" "srv3")
for HOST in "${SERVERS[@]}"; do
echo "--- $HOST ---"
ssh "$HOST" "df -h /"
done
Requiere acceso SSH sin contraseña configurado con claves públicas.
Buenas prácticas
Usa
#!/bin/basho#!/usr/bin/env bashsiempre.Valida entradas del usuario (
$1,$2, etc.).Usa
set -euo pipefailpara scripts críticos.Documenta con comentarios.
Usa
cronosystemd timerspara ejecutar periódicamente.
Saber Bash no es solo escribir comandos en un archivo. Es pensar en términos de automatización, control, trazabilidad y eficiencia. Es construir confianza en tus operaciones.
Y en The Rabbit Hole, Bash es la varita mágica del ingeniero moderno. 🐇



