Casos reales de administración Linux¶
Este módulo presenta casos reales de producción, analizados con mentalidad de sysadmin: contexto, diagnóstico, decisiones, resolución y lecciones aprendidas.
El objetivo no es mostrar comandos, sino cómo pensar cuando todo importa: impacto, riesgo, tiempo y reversibilidad.
Introducción¶
En producción no hay ejercicios aislados.
Los problemas mezclan red, permisos, procesos, disco, servicios y personas.
Estos casos reflejan situaciones reales donde:
- No toda la información está disponible
- Hay presión por restaurar el servicio
- Un mal paso puede empeorar el impacto
💡 El valor está en el razonamiento, no en el comando final.
Caso 1: Servicio web caído tras un cambio “menor”¶
Contexto¶
- Servidor web en producción
- Cambio de permisos para “ordenar archivos”
- Minutos después, la web deja de responder
Diagnóstico¶
systemctl status nginx
journalctl -u nginx -e
Error repetido: permission denied.
ps aux | grep nginx
ls -ld /var/www/app
Causa real¶
- El proceso corre como
www-data - El directorio perdió permiso de ejecución (
x) - El archivo tenía permisos correctos, el directorio no
Resolución¶
chown -R www-data:www-data /var/www/app
chmod 755 /var/www/app
Reinicio controlado del servicio.
Lección aprendida¶
- Los permisos en directorios son críticos
- No usar 777
- Revisar usuario del proceso antes de cambiar permisos
Caso 2: Servidor “lento” que no estaba roto¶
Contexto¶
- Usuarios reportan lentitud
- CPU aparentemente baja
- Servicios activos
Diagnóstico¶
uptime
top
free -h
df -h
Resultado: swap al 100 %, RAM agotada.
Causa real¶
- Proceso Java con fuga de memoria
- El sistema no estaba caído, estaba asfixiado
Resolución¶
- Reinicio controlado del servicio
- Ajuste de límites de memoria
- Monitorización posterior
Lección aprendida¶
- CPU baja no significa sistema sano
- La memoria mata silenciosamente
- Mirar swap siempre
Caso 3: “No hay red” (pero sí la había)¶
Contexto¶
- Servidor sin acceso a Internet
- Servicios locales funcionan
Diagnóstico¶
ip addr
ip route
ping 8.8.8.8
ping google.com
Resultado:
- Ping por IP funciona
- Ping por nombre falla
Causa real¶
DNS mal configurado tras cambio de red.
cat /etc/resolv.conf
Resolución¶
- Corregir DNS
- Evitar editar
resolv.confmanualmente - Configurar correctamente NetworkManager / systemd-resolved
Lección aprendida¶
- Red ≠ DNS
- Siempre prueba IP antes que nombres
- Muchos “problemas de red” son DNS
Caso 4: Disco lleno que rompe todo¶
Contexto¶
- Fallos aleatorios
- Servicios que no escriben logs
- SSH intermitente
Diagnóstico¶
df -h
du -sh /var/log/*
journalctl --disk-usage
Causa real¶
- Logs sin rotar
/varal 100 %
Resolución¶
- Limpiar logs antiguos
- Revisar
logrotate - Alertas de disco configuradas
Lección aprendida¶
- El disco lleno rompe cosas de formas raras
- La prevención es clave
/varmerece monitorización dedicada
Caso 5: Usuario con sudo… que no podía usarlo¶
Contexto¶
- Usuario “admin” sin acceso sudo
- Funcionaba el día anterior
Diagnóstico¶
id admin
groups admin
visudo
Causa real¶
- Usuario no estaba en el grupo
sudo - Cambio de usuario reciente
Resolución¶
usermod -aG sudo admin
Nuevo login.
Lección aprendida¶
- sudo depende de grupos
- Siempre revisar
idygroups - Nunca editar sudoers sin
visudo
Caso 6: Actualización que rompe un servicio crítico¶
Contexto¶
apt upgradeen producción- Servicio deja de arrancar
Diagnóstico¶
journalctl -b
systemctl status servicio
Revisión de cambios recientes.
Causa real¶
- Cambio de versión incompatible
- Config antigua no válida
Resolución¶
- Ajustar configuración
- Reinicio controlado
- Ventanas de mantenimiento definidas
Lección aprendida¶
- Actualizar no es trivial
- Leer cambios importantes
- Producción no es laboratorio
Errores comunes¶
Errores que aparecen en casi todos los casos:
- No mirar logs
- Actuar con prisas
- Cambiar varias cosas a la vez
- No entender el contexto
- No documentar la solución
Consejo: la calma reduce el impacto.
Ejercicios prácticos¶
-
Analiza un caso
- Elige uno de los anteriores
- Escribe: causa, solución y prevención
-
Simula diagnóstico
systemctl status ssh
journalctl -u ssh -e
- Checklist personal
- Crea tu checklist de producción antes de tocar nada
Mentalidad¶
Un sysadmin con experiencia:
- Piensa en impacto antes que en comandos
- Prefiere entender a “arreglar rápido”
- Documenta para el futuro
- Aprende de cada incidente
- Sabe que producción es diferente
Los casos reales enseñan criterio, no recetas.
Resumen¶
- Los problemas reales combinan varios temas
- El diagnóstico ordenado marca la diferencia
- Logs, red y recursos son claves
- La prevención ahorra incidentes
- La experiencia se construye resolviendo y reflexionando
Siguiente paso¶
A partir de aquí comienza un nuevo bloque de la guía:
En este bloque entrarás en:
- Gestión diaria del sistema
- Operaciones administrativas fundamentales
- Bases sólidas para entornos productivos