El principal “problema” que tiene un Administrador de sistemas, es mantener controlados a los usuarios, que por algun motivo, ya sea por desconocimiento o porque directamente no les importa lo que estan haciendo (por suerte en mi caso estos son los menos), en ocasiones desde el dpto nos vemos obligados a ser autenticos detectives en busqueda de los origenes de los problemas.
Quiero aprovechar este post, para que todos los que en algun momento perseguimos usuarios, podamos tener unos puntos básicos de partida.
Empezaré por los comandos más evidentes e ire avanzando un poco, como ya os dije, son comandos muy basicos pero que a veces se nos pasan de largo.
- ps -feaux : Este comando es el primero que cualquier administrador de sistemas tendrá a mano, rapidamente nos sale una lista en forma de arbol de todos los procesos que estan corriendo en la máquina local, este ejemplo nos sirve para saber si hay algun proceso huerfano, si existen procesos zombies consumiendo, etc…
- top : Otro tambien básico, un comando a pantalla completa, que se actualiza constantemente como si fuera filtrado por un watch, y donde nos muestra, entre otros, la carga del sistema (load, cpu, idle…). Con este comando claramente podemos saber la carga del sistema, podemos conocer la memoria que consume un proceso y tambien, por supuesto, la cpu.
- vmstat : Otra utilidad a la que solemos recurrir, nos muestra informacion de memoria e incluso centrada en bloques IO, paginas,… quizá mas tecnica.
- w : Es san básico que casi se me pasa, comando para saber quien (who) está conectado, sirve para saber si un usuario anda haciendo ssh a lugares donde solo se puede computar. En nuestro caso, los nodos de calculo no permiten ssh (algun dia os contaré entonces como va el asunto)
- tail : No es un comando tan tecnico como los anteriores, quizá sea mas generalista. Este comando nos muestra el final del fichero, en concreto las 10 ultimas lineas, aunque con opciones como -n 100 (100 ultimas lineas), o con la mejor -f (se queda esperando que alguien o algo escriba en el fichero) muy util si por ejemplo queremos ejecutar algo en una terminal y mirar si escribe en el fichero
- free : Memoria libre, asi de sencillo :) versiones actuales permiten la opcion -h (modo humano…) con lo que podemos verlo en Gigas o sino… siempre nos queda la opcion -k
- iptraf : Quizá la mas tecnica, esta la usamos para saber quien esta, por ejemplo haciendo uso extensivo e intensivo de la red, y por lo general saturando el nfs y afectando al resto de usuarios. Iptraf es un generador de estadisticas (que NO snifer) donde se nos muestra la suma total de paquetes o bytes que se estan moviendo por un interface de red.
- strace : O como ver las tripas de un proceso corriendo, se puede lanzar seguido de -p y un pid o con el comando a ejecutar. No os asusteis del cascoporro de cosas que sueltan, porque al final se termina entendiendo cuando crea y cierra ficheros y si esta haciendo output o no
- kill : Bueno… como su nombre indica, nos sirve para matar procesos, pero no solo eso, tambien nos sirve para parar, reencolar, y muchas mas opciones. Muy interesante
Como veis, son ideas generales, como siempre, utilizar el man o -help antes de cualquier comando que no tengais claro, porque la podeis liar parda… como hacer un kill -9 al pid 1
Os dejo tambien este enlace para informacion mas detallada.
http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html


Sergio Carracedo 25 febrero, 2010
Muy buen post, algunos comandos los conocia, pero siempre viene bien saber que pasa en el server por si algun listillo la intenta liar o alguna script consume más cpu y memoria de lo necesario.