LINUX COMMAND LINE – DÍA 3
Inspeccionar el sistema: procesos, memoria, CPU, servicios, usuarios, uptime
1. Objetivo del día
Aprender los comandos esenciales para diagnosticar un sistema rápidamente:
- ver procesos activos
- comprobar carga del sistema
- ver uso de memoria, CPU y disco
- ver qué servicios están activos
- detectar usuarios conectados
- identificar la versión del sistema
- medir el uptime del servidor
Esto es lo que un sysadmin hace a diario para entender si un sistema está sano o no.
2. Requisitos
- Saber navegar (Día 1)
- Saber manipular archivos y directorios (Día 2)
3. Información general del sistema
3.1. Uptime: cuánto tiempo lleva encendido el servidor
uptime
Ejemplo típico:
14:22:10 up 5 days, 3:10, 2 users, load average: 0.32, 0.40, 0.35
Incluye:
- tiempo encendido
- usuarios conectados
- carga del sistema (load average)
3.2. Ver versión del sistema: uname
uname -a
Muestra:
- kernel
- arquitectura
- nombre de host
3.3. Ver información detallada de la distro (Linux)
(No funciona en Solaris, AIX o HP-UX)
cat /etc/os-release
4. Procesos del sistema
4.1. Ver procesos: ps
Procesos del usuario actual:
ps
Procesos con detalles:
ps aux
Buscar un proceso concreto:
ps aux | grep nginx
4.2. Ver procesos en tiempo real: top
top
Muestra:
- procesos activos
- uso de CPU
- uso de memoria
- carga del sistema
Salir con:
q
4.3. Versión moderna de top: htop (si está instalado)
Más visual:
htop
No siempre está instalado en entornos corporativos.
5. CPU, memoria y disco
5.1. Memoria RAM: free
free -h
Muestra:
- RAM total
- RAM usada
- RAM libre
- caché y buffers (muy importante)
5.2. Uso de CPU: top o /proc/cpuinfo
cat /proc/cpuinfo
5.3. Uso de disco: df
df -h
Muestra:
- uso de particiones
- espacio disponible
- sistemas de archivos
5.4. Tamaño de carpetas: du
Tamaño del directorio actual:
du -sh .
Tamaño de subcarpetas:
du -sh *
Esto es ORO para localizar directorios que consumen espacio.
6. Logs (visión preliminar)
Ver el final de un log:
tail /var/log/syslog
Seguir un log en vivo:
tail -f /var/log/syslog
(Más profundo en Día 4.)
7. Usuarios y sesiones
7.1. Ver quién está conectado: who
who
7.2. Actividad de los usuarios: w
w
Muestra:
- usuarios
- procesos
- tiempo de actividad
7.3. Últimos inicios de sesión
last
8. Servicios del sistema
En Linux moderno (systemd):
8.1. Ver estado de un servicio
systemctl status nginx
8.2. Ver servicios activos
systemctl --type=service --state=running
8.3. Reiniciar un servicio (si tienes permisos)
sudo systemctl restart nginx
8.4. Ver logs de un servicio
journalctl -u nginx
(Volveremos más a fondo en Día 4)
9. Práctica guiada (20 min)
9.1. Información del sistema
uname -a
uptime
cat /etc/os-release
9.2. Procesos
ps aux | head
ps aux | grep ssh
top
9.3. Memoria y CPU
free -h
cat /proc/cpuinfo
9.4. Disco
df -h
du -sh /var/log
9.5. Usuarios
who
w
9.6. Servicios (si tienes systemd)
systemctl --type=service --state=running
10. Checklist del Día 3
- Usas
uptimepara medir carga - Usas
uname -apara ver la versión del sistema - Buscas procesos con
ps aux | grep - Usas
toppara ver consumo en tiempo real - Mides memoria con
free -h - Mides disco con
df -hydu -sh - Sabes ver sesiones activas con
whoyw - Sabes ver servicios con
systemctl
Si todo esto lo dominas → ya puedes diagnosticar un servidor real.
11. Bonus: Automatización básica con Cron (crontab)
cron es el servicio de Linux que permite ejecutar comandos o scripts automáticamente en momentos determinados.crontab es el archivo donde cada usuario define sus tareas programadas.
Es una herramienta básica y muy útil incluso para principiantes, porque permite automatizar trabajos repetitivos: backups, limpieza de logs, ejecución de scripts, etc.
11.1 Ver y editar tu crontab
Mostrar las tareas programadas:
crontab -l
Editar tu crontab:
crontab -e
11.2 Estructura de una línea en crontab
Cada tarea sigue este formato:
* * * * * comando-a-ejecutar
│ │ │ │ │
│ │ │ │ └─ Día de la semana (0–7)
│ │ │ └──── Mes (1–12)
│ │ └─────── Día del mes (1–31)
│ └────────── Hora (0–23)
└────────────── Minuto (0–59)
Ejemplo:
30 2 * * * /home/user/backup.sh
→ Ejecuta el script cada día a las 02:30.
11.3 Ejemplos útiles
Cada minuto (para pruebas):
* * * * * echo "hola" >> /tmp/prueba.txt
Cada lunes a las 8:00:
0 8 * * 1 /home/user/reporte.sh
Cada 10 minutos:
*/10 * * * * /usr/bin/python3 /home/user/mi_script.py
Guardar logs:
0 6 * * * /home/user/limpieza.sh >> /var/log/limpieza.log 2>&1
11.4 Buenas prácticas
- Usa rutas absolutas: cron no carga tu PATH habitual.
- Asegúrate de que tus scripts tienen permisos:
chmod +x script.sh - Revisa el estado del servicio:
sudo systemctl status cron - Si algo falla, revisa los logs:
- Ubuntu/Debian:
/var/log/syslog - CentOS/RHEL:
/var/log/cron
- Ubuntu/Debian:
11.5 Práctica guiada
- Crear un script
hola.shque escriba “Hola cron” en un archivo. - Añadirlo al crontab para ejecutarlo cada minuto.
- Comprobar que se ejecuta correctamente.
- Ajustarlo para que vaya cada 10 minutos.
Con esto aprenderás lo esencial para automatizar tareas en Linux desde el primer día.
12. Ejercicio sugerido
- Ver cuántos días lleva encendido tu sistema con
uptime. - Ver cuántas CPUs tienes (
cat /proc/cpuinfo | grep processor). - Ver servicios activos.
- Localizar qué carpeta ocupa más espacio dentro de
/var/log. - Ver quién está conectado ahora mismo.
- Buscar el proceso
sshdconps aux | grep ssh.
13. Día 3 completado
Ahora ya puedes mirar un sistema Linux como un profesional.
Esto es exactamente lo que hace un técnico cuando recibe una alerta o entra en un servidor nuevo.
En el Día 4 aprenderás a:
👉 buscar información, analizar logs y localizar archivos con comandos esenciales:
grep, find, locate, tail, head, less
