LINUX COMMAND LINE – DÍA 7
Proyecto final: Diagnóstico completo de un servidor Linux
(como si fuera tu primer día en un cliente real)
1. Objetivo del día
Aplicar TODO lo aprendido en los 6 días anteriores para realizar un diagnóstico rápido y completo de un servidor Linux:
- información del sistema
- carga, memoria, CPU, disco
- procesos
- servicios
- logs
- red
- permisos básicos
- búsqueda de información
- problemas comunes
Este es un escenario real, tal como lo viviría un técnico de monitorización, plataforma, sysadmin o devops cuando accede a un servidor por primera vez.
2. Archivo de trabajo (opcional)
Puedes crear una carpeta de trabajo:
mkdir diagnostico
cd diagnostico
Pero no es obligatorio.
3. Escenario del Proyecto
Acabas de conectarte vía SSH a un servidor llamado:
srv-produccion-01
Tu misión es:
👉 Realizar un diagnóstico completo en menos de 10 minutos,
como lo haría un técnico experto.
4. Tareas del Proyecto Final (en orden recomendado)
Aquí tienes un checklist profesional.
4.1. Identificar el sistema
uname -a
cat /etc/os-release
¿Qué has averiguado?
- kernel
- distro
- arquitectura
- versión del sistema
4.2. Ver tiempo encendido y carga
uptime
Anota:
- días encendido
- número de usuarios
- load average (muy importante)
4.3. Uso de CPU en tiempo real
top -o %CPU
o
ps aux --sort=-%cpu | head
Preguntas clave:
- ¿hay procesos comiendo CPU?
- ¿hay algo descontrolado?
4.4. Uso de memoria
free -h
Observa:
- memoria total
- memoria libre
- swap usada (⚠️ si hay mucha swap → problema)
4.5. Uso de disco
df -h
¿Alguna partición al 90% o más?
Listar carpetas más pesadas:
du -sh /* | sort -hr | head
4.6. Procesos relevantes
ps aux | head
ps aux | grep -i nginx
ps aux | grep -i java
Busca:
- procesos zombie
- procesos con memoria anormal
- servicios caídos
4.7. Usuarios conectados y actividad
who
w
last | head
Detecta:
- sesiones extrañas
- usuarios activos
- accesos recientes
4.8. Servicios del sistema
Ver servicios activos:
systemctl --type=service --state=running
Ver estado de un servicio importante:
systemctl status ssh
systemctl status nginx
systemctl status cron
(adaptar según el servidor)
4.9. Logs recientes del sistema
Ver últimos errores del sistema:
journalctl -p 3 -n 20
(p=3 = errores)
Ver syslog:
tail -n 30 /var/log/syslog
Ver errores SSH:
grep -i failed /var/log/auth.log
4.10. Conectividad de red
Ping:
ping -c 4 8.8.8.8
Ruta:
tracepath 8.8.8.8
Probar puerto remoto:
nc -zv google.com 443
Ver puertos en escucha:
ss -tulpn
Resolver DNS:
nslookup google.com
4.11. Permisos básicos
Identificar propietario y permisos de un archivo crítico:
ls -l /etc/passwd
Comprobar permisos de logs:
ls -l /var/log
5. Plantilla de Informe (opcional)
Sugerencia de informe
=== INFORME DE DIAGNÓSTICO ===
Sistema:
uname: _____________________
distro: ____________________
Estado:
uptime: ____________________
load: ______________________
CPU:
proceso principal: _________
top: _______________________
Memoria:
RAM libre: ________________
SWAP usada: _______________
Disco:
particiones críticas: ______
Red:
ping: ______________________
puerto 443: ________________
traceroute: ________________
Servicios:
servicios activos: __________
servicios caídos: ___________
Logs:
últimos errores: ____________
Esto es exactamente lo que hace un técnico de guardia real.
6. Ejercicio final
Haz un diagnóstico completo con los comandos del checklist y responde:
- ¿El servidor tiene carga alta?
- ¿Hay falta de memoria o swap usada?
- ¿Las particiones están llenas?
- ¿Los servicios están corriendo?
- ¿Hay errores recientes en los logs?
- ¿Hay conectividad externa?
- ¿Algún puerto crítico está cerrado?
- ¿Hay usuarios conectados?
7. Día 7 completado
¡Has completado el Mini Tutorial de Emergencia de Linux Command Line!
Ya no eres un usuario que tiene miedo a la terminal:
eres un profesional capaz de moverse, diagnosticar y entender un servidor real.
Has aprendido a:
- navegar
- manipular ficheros
- comprender el sistema
- analizar logs
- diagnosticar red
- gestionar permisos
- hacer un checklist profesional
Esto es exactamente lo que necesita alguien que empieza en sistemas, monitorización o devops.
⭐ Cierre del Mini Tutorial de Linux Command Line
Has completado 7 días intensivos que te dan una base real y sólida para trabajar con sistemas Linux en entornos profesionales.
No eres un experto aún (nadie lo es en 7 días), pero ahora tienes la navaja suiza mínima imprescindible para enfrentarte a cualquier servidor sin miedo.
Cada comando que has aprendido es una herramienta real que los sysadmins usan a diario.
Cuanto más practiques, más rápido, seguro y preciso te volverás.
A partir de aquí puedes seguir creciendo con:
- scripting Bash
- Git
- Docker
- monitorización
- seguridad
- automatización
- Python más avanzado
Gracias por completar este viaje.
Nos vemos en el próximo Mini Tutorial de Emergencia.
