Las emergencias en administración de sistemas son inevitables. Un servidor caído, un servicio que no responde o un sistema errático exigen respuesta inmediata. Contar con las herramientas adecuadas marca la diferencia entre una interrupción prolongada y una solución eficiente.
Este artículo presenta cinco comandos esenciales de Linux. Dominarlos puede salvarte en momentos críticos donde cada segundo cuenta. Son utilidades que todo sysadmin debe tener en su arsenal.
ss: Estadísticas de Sockets
Monitoreo de conexiones de red
El comando ss es la herramienta moderna para inspeccionar conexiones de red. Sustituye a netstat ofreciendo mejor rendimiento y más información detallada sobre sockets. Identifica rápidamente puertos abiertos, conexiones activas y estados de red.
Para ver todas las conexiones TCP y UDP, usa sudo ss -tulpan. Esto muestra los sockets TCP y UDP listos para escuchar, junto con los procesos asociados y sus puertos. El sudo es crucial porque sin él no verás qué proceso está usando cada puerto.
Por ejemplo, sudo ss -tulpan | grep :80 revela exactamente qué proceso escucha en el puerto HTTP. Sin el sudo, solo verás los puertos abiertos pero no los nombres de proceso ni PIDs. Cuando un servicio web no responde, verificar el puerto 80 o 443 con ss es el primer paso diagnóstico.
Si no hay nada escuchando en el puerto esperado, el problema no está en la red sino en el propio servicio. Esta información acelera el diagnóstico y te ahorra tiempo valioso.
lsof: Listar Archivos Abiertos
Diagnóstico de uso de recursos
lsof es indispensable para entender qué procesos están usando archivos, directorios o dispositivos. En Linux todo es un archivo, lo que convierte a lsof en una utilidad extremadamente versátil. Localiza bloqueos, fugas de descriptores de archivo o identifica procesos que acceden a recursos inesperados.
Para ver todos los archivos abiertos por un proceso específico, usa lsof -p <PID>. Por ejemplo, lsof -p 1234 muestra todos los recursos que el proceso con PID 1234 está utilizando. Si necesitas saber qué proceso tiene un archivo abierto, lsof /ruta/al/archivo te da la respuesta inmediata.
Una situación común es un disco lleno por un archivo de log gigante. Con lsof | grep deleted, encuentras procesos que mantienen abierto un archivo ya borrado. El espacio solo se libera al reiniciar ese proceso específico. Esto evita reinicios innecesarios del servidor completo y permite una solución quirúrgica.
strace: Rastreo de Llamadas al Sistema
Depuración de procesos en tiempo real
strace es una herramienta poderosa para depurar programas con comportamiento inesperado. Rastrea las llamadas al sistema y señales que un proceso recibe o envía. Revela el comportamiento interno de una aplicación sin modificar su código ni recompilar nada.
Para adjuntar strace a un proceso en ejecución, usa strace -p <PID>. Si quieres iniciar un comando y rastrearlo desde el principio, ejecuta strace <comando>. Verás cada interacción del programa con el kernel en tiempo real.
Un programa que falla al iniciar o arroja errores crípticos a menudo revela su problema con strace. Por ejemplo, un error de «permiso denegado» puede mostrar una llamada openat fallida con EACCES. Esto apunta directamente a un problema de permisos de archivo o directorio, eliminando horas de búsqueda a ciegas.
find: Localización de Archivos
Búsqueda eficiente en el sistema de archivos
El comando find es fundamental para localizar archivos y directorios según diversos criterios. Busca por nombre, tipo, tamaño, fecha de modificación, permisos y propietario. Es indispensable para encontrar archivos de configuración extraviados, logs antiguos o archivos con permisos incorrectos.
Para buscar archivos por nombre, usa find /ruta/inicio -name "archivo.conf". Si necesitas encontrar archivos modificados en las últimas 24 horas, ejecuta find /var/log -mtime -1. Esto identifica rápidamente archivos recientes que podrían causar un problema actual.
En una emergencia de seguridad, encontrar archivos con permisos 777 es crítico. El comando find / -perm 777 revela estos archivos vulnerables. La capacidad de find para ejecutar acciones sobre resultados, como -exec chmod 644 {} \;, lo hace aún más valioso para correcciones masivas.
journalctl: Consulta del Journal de Systemd
Análisis centralizado de logs
journalctl es la herramienta estándar para interactuar con el journal de systemd, el sistema de logging centralizado de Linux moderno. Accede a logs de servicios, del kernel y de aplicaciones de manera unificada. Es vital para diagnosticar fallos de arranque, problemas de servicios o errores del sistema.
Para ver los logs más recientes, ejecuta journalctl. Si un servicio específico falla, filtra los logs con journalctl -u <nombre_servicio>. Por ejemplo, journalctl -u nginx.service --since "1 hour ago" muestra los logs de Nginx de la última hora.
Cuando un sistema no arranca, journalctl -b -1 muestra los logs del arranque anterior, revelando errores que impidieron el inicio. Usar journalctl -f permite seguir los logs en tiempo real, ideal para observar el comportamiento mientras intentas reiniciar o depurar un servicio. Esto ofrece visibilidad completa de la salud del sistema.
Conclusión
Dominar estos cinco comandos proporciona una base sólida para enfrentar cualquier emergencia. Diagnostican problemas de red, identifican uso de recursos, depuran procesos, localizan archivos críticos y analizan logs del sistema. La práctica constante con estas herramientas mejora tu capacidad de respuesta y minimiza el tiempo de inactividad.
Invierte tiempo en aprender su funcionamiento. Son tus aliados más fiables cuando el reloj corre y la presión aumenta. Cada minuto que dediques a dominarlas se traducirá en horas ahorradas durante una emergencia real.

