Casos reales de SysAdmin en Linux

Este módulo recopila casos reales y realistas que un sysadmin Linux puede (y suele) vivir. No son ejercicios ideales ni escenarios limpios: son incidentes, errores humanos, decisiones bajo presión y lecciones aprendidas.

El objetivo es aprender cómo pensar y actuar cuando las cosas ya están rotas.


Introducción / Concepto principal

Un caso real no se mide por el comando correcto, sino por:

  • Cómo se detectó el problema
  • Qué hipótesis se hicieron
  • Qué decisiones se tomaron bajo presión
  • Qué se aprendió después

La experiencia no se estudia, se analiza.


Caso 1: Servicio web caído tras actualización

Contexto

Servidor web en producción.
Actualización rutinaria del sistema durante horario laboral.

Síntoma

  • Web deja de responder
  • Clientes reportan error 502

Diagnóstico

systemctl status nginx
journalctl -u nginx

Error detectado:

  • Incompatibilidad de configuración tras actualización

Solución

cp nginx.conf.bak nginx.conf
systemctl restart nginx

Lección aprendida ✅

  • Nunca actualices en horario crítico
  • Siempre prueba configuraciones antes de reiniciar
  • Mantén backups de config

Caso 2: Disco lleno durante la noche

Contexto

Servidor sin monitorización activa de disco.

Síntoma

  • Servicios fallan
  • Imposible escribir logs

Diagnóstico

df -h
du -xh / | sort -h | tail

Causa:

  • Logs creciendo sin rotación
  • Backups antiguos acumulados

Solución

rm logs_antiguos.log
systemctl restart servicio

(⚠️ con extremo cuidado)

Lección aprendida ✅

  • Monitoriza disco siempre
  • Implementa logrotate
  • El disco lleno rompe sistemas silenciosamente

Caso 3: Permisos mal aplicados

Contexto

Script crítico deja de ejecutarse tras cambio rápido.

Síntoma

  • Script existe
  • Error “Permission denied”

Diagnóstico

ls -l script.sh

Error:

  • Permisos excesivamente restrictivos

Solución

chmod 750 script.sh
chown appuser:appgroup script.sh

Lección aprendida ✅

  • Los permisos son causa frecuente de fallos
  • No usar 777 como solución
  • Aplica mínimos privilegios

Caso 4: Proceso incontrolado consumiendo CPU

Contexto

Servidor lento sin causa aparente.

Síntoma

  • CPU al 100%
  • Aplicaciones lentas

Diagnóstico

top
ps aux --sort=-%cpu

Proceso identificado:

  • Script mal programado en bucle infinito

Solución

kill PID
renice 10 -p PID

Lección aprendida ✅

  • No mates a ciegas
  • Ajusta prioridad antes de matar procesos
  • Revisa scripts automatizados

Caso 5: Cambio "rápido" sin documentación

Contexto

Cambio manual hecho meses atrás sin documentar.

Síntoma

  • Nadie recuerda por qué algo está configurado así
  • El servicio se rompe al tocarlo

Diagnóstico

  • Falta total de contexto

Solución

✔️ Revertir parcialmente
✔️ Analizar histórico
✔️ Documentar al final

Lección aprendida ✅

  • Lo que no se documenta, se pierde
  • Documentar evita dependencia de personas
  • La memoria no es una estrategia

Puntos críticos / Errores comunes

  • Confiar en la “rutina”
  • Cambios sin rollback
  • No prever impacto
  • Resolver el problema pero no la causa
  • No dejar rastro escrito

Consejo: todo incidente merece post‑mortem


Ejercicios prácticos

1. Mini post‑mortem

Documenta un fallo pasado real o simulado:

- Qué pasó
- Impacto
- Causa
- Solución
- Cómo evitarlo

2. Escenario de guardia nocturna

Simula:

systemctl stop nginx

Y documenta cómo lo detectarías y resolverías medio dormido.


Mentalidad

  • Los sistemas fallan, las personas también
  • El estrés revela hábitos
  • La experiencia es memoria estructurada
  • Mejora tras cada incidente
  • Un buen sysadmin aprende de errores ajenos y propios

Resumen

  • Los casos reales enseñan más que la teoría
  • Los fallos suelen ser simples, las consecuencias no
  • Diagnóstico > comando
  • Documentar cierra el ciclo del incidente
  • El sysadmin profesional piensa en impacto y prevención

Siguiente paso

A partir de aquí comenzamos el Tema 2: Uso diario de Linux 🐧

Primer módulo del Tema 2:

Uso diario de Linux para SysAdmins (02-uso-diario-linux.md)

Donde trabajarás:

  • Navegación avanzada en consola
  • Flujo de trabajo diario
  • Combinación de comandos
  • Productividad real en terminal
  • Pensar en Linux como herramienta diaria