Información del Sistema
Logs
Los logs, o registros, son archivos de texto, por lo general con extensión .log, en los que el sistema operativo vuelca información de la ejecución de los procesos. Mediante el análisis de su contenido, podemos recopilar información sobre las condiciones de ejecución, o error, de un determinado proceso. Linux utiliza ampliamente un sistema de gestión de logs conocido como syslog, o alguna de sus variantes más avanzadas, como el caso de rsyslog en Ubuntu. Según la importancia del mensaje, lo que se denomina severidad, se pueden tomar acciones en respuesta al evento que ha originado el log. Por ejemplo, un error crítico del kernel, será identificado como originado por el facility kernel y nivel de severity critical. El administrador, en respuesta, podría configurar acciones que van desde la propia escritura en un archivo de texto .log determinado, hasta el envío de un mail de aviso a su cuenta de correo.
Los archivos de texto asociados a los logs suelen ubicarse en el directorio /var/log, el cual suele estar estructurado según la naturaleza de los procesos que originan la información
Comando strace
Este es un comando muy útil para revisar las condiciones exhaustivas de ejecución de un programa. Básicamente lo que hace es un volcado de la traza de ejecución de un proceso (ahí se muestra información de bajo nivel sobre el estado de la CPU, interrupciones, etc.).
El volumen de información generado es enorme, ya que se muestra información de las instrucciones ejecutadas por el proceso. Este tipo de información es utilizada habitualmente por los desarrolladores durante los procesos de depuración, debug, de sus programas.
Ejemplo:
strace /usr/bin/who
Ver información sobre hardware
Comandos lsxxx
Comandos como lshw, lspci, lsusb, lscpu permiten ver información relativa a los dispositivos hardware del Sistema. Ejemplo:
lshw -class network
mostraría los dispositivos físicos de red. Otras clases de dispositivos que se pueden consultar con la opción -class son:
- bus
- multimedia
- processor
- bridge
- storage
- display
- memory
Este comando lshw es muy útil, ya que permite ver información de todo tipo de hardware del sistema. Para ver una descripción compacta del hardware y la clase correspondiente a cada dispositivo ejecutamos:
lshw -short
También es posible visualizar información relativa a los dispositivos hardware con el comando ls, en los directorios virtuales del sistema que incorporan información relativa a los dispositivos. Por ejemplo:
ls -d /sys/class/net/eth'''
mostraría los dispositivos de red Ethernet
Comando dmidecode
Un comando realmente potente que muestra mucha información. Obtiene la información a través de la especificación SMBIOS, que permite leer información a través de estructuras de datos que almacenan la información del BIOS
dmidecode -q
Muestra información global del sistema, incluyendo todos los elementos
dmidecode --type baseboard
Muestra información sobre la placa base. Otros valores posibles para el parámetro type:
- bios
- system
- processor
- chassis
- memory
- cache
- connector
- slot
Comando dmesg
El comando dmesg permite visualizar los mensajes generados por el kernel en el arranque del sistema. Para verlos podemos utilizar un filtro con grep. Por ejemplo
dmesg | grep "eth"
Comando hardinfo
Muy útil, admite también la posibilidad de ejecutar benchmark de rendimiento. Podemos instalarlo con
apt-get install hardinfo
Las opciones más interesantes
- --help: muestra la ayuda del comando
- -m: permite cargar módulos para configurar su funcionamiento
- -l: lista los módulos disponibles
- -a: aplica automáticamente dependencias entre módulos
El siguiente comando mostraría información de dispositivos:
hardinfo -m devices.so -a
Con el siguiente comando veríamos información de dispositivos de red
hardinfo -m network.so -a
Comando hdparm
Útil para visualizar información sobre dispositivos de almacenamiento secundario
sudo hdparm -I /dev/sda
Archivos en el directorio /proc
En este directorio virtual el kernel vuelca información sobre los procesos y recursos del sistema. Algunos archivos que contienen información útiles:
- /proc/cpuinfo
- /proc/meminfo
- /proc/version
- /proc/partitions
...y muchos más, para verlos podemos hacer un:
for f in /proc/'''; do if [ -f $f ];then echo `basename $f`;fi;done
Dentro del directorio /proc hay subdirectorios con nombres numéricos correspondientes a los PID de los procesos en ejecución. Dentro de cada uno de esos subdirectorios se almacena información de cada uno de los procesos.
El paquete sysstat
En este paquete encontramos utilidades de comandos como mpstat, que muestra información sobre la CPU e iostat, Entrada y Salida. También disponemos, sin necesidad de instalar el paquete sysstat, de la utilidad vmstat que muestra información acerca de la Memoria Virtual
El comando time
El comando time sirve para "cronometrar" las tareas que se ejecutan bajo su control. Por ejemplo
time for a in {1..1000000};do continue;done
Mostraría las estadísticas de tiempos de ejecución del ciclo iterativo del bucle for indicado
JavierFP 16:31 08 ene 2019 (CET)