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/bash
o#!/usr/bin/env bash
siempre.Valida entradas del usuario (
$1
,$2
, etc.).Usa
set -euo pipefail
para scripts críticos.Documenta con comentarios.
Usa
cron
osystemd timers
para 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. 🐇
Subscribe to my newsletter
Read articles from Dan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
