Buscar aquí

25 octubre 2012

Obtener información del hardware existente en Linux

En linux, se puede obtener la información del hardware utilizando una serie de comandos, que funcionan con cuenta de usuario normal.  Todos estos comandos vienen en la instalación por defecto, eso sí, para conocer datos como de la batería y otros manejados por ACPI existe acpitool, que se debe instalar por separado y pueden consultar este post

- cat /etc/redhat-release, muestra la versión de Fedora o CentOS o Redhat Enterprise o Mandriva o ... Suse?? imagino que debe funcionar
[root@note3 ~]# cat /etc/redhat-release
Fedora release 16 (Verne)

- lscpi
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
00:01.0 PCI bridge: Hewlett-Packard Company Device 9602
00:04.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 0)
00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1)
00:07.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 3)
00:09.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4)
00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 42)
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB Controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
01:05.0 VGA compatible controller: ATI Technologies Inc M880G [Mobility Radeon HD 4200]
01:05.1 Audio device: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]
03:00.0 SD Host controller: Ricoh Co Ltd MMC/SD Host Controller (rev 01)
03:00.1 System peripheral: Ricoh Co Ltd Memory Stick Host Controller (rev 01)
03:00.2 System peripheral: Ricoh Co Ltd Device e852 (rev 01)
03:00.3 FireWire (IEEE 1394): Ricoh Co Ltd FireWire Host Controller (rev 01)
07:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)

- lscpu, para obtener detalles del procesador instalado:
[root@note3 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            16
Model:                 6
Stepping:              3
CPU MHz:               2800.000
BogoMIPS:              5586.04
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              1024K
NUMA node0 CPU(s):     0,1




- lsusb, para obtener información sobre los puertos usb y dispositivos conectados:
[root@mardones3 ~]# lsusb
Bus 004 Device 002: ID 04e6:5119 SCM Microsystems, Inc. SCR3340 - ExpressCard54 Smart Card Reader
Bus 005 Device 002: ID 03f0:231d Hewlett-Packard
Bus 006 Device 002: ID 138a:0007 Validity Sensors, Inc. VFS451 Fingeprint Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Si conocen otro comando útil, no dejen de sugerirlo.

01 octubre 2012

Cómo obtener la lista de archivos abiertos por un proceso

Más de alguna vez es necesario conocer qué archivos está utilizando un proceso, si mantiene algún puerto abierto o talvez, cuántos archivos tiene abierto el proceso.   Para este  tipo de consultas, lsof es la respuesta, tanto en linux como HPUX.

Es importante ejecutar este comando con usuario root, para tener acceso a la información de todos los procesos del sistema.

Lsof (que significa lista de archivos abiertos) soluciona esto con el switch -p.  Este switch, permite pasar el PID del proceso que interesa y devuelve la lista completa de archivos en el sistema, por ejemplo, si en una consola tengo un comando vi archivodeprueba y busco el lsof de esto, me muestra:

COMMAND  PID   USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
vim     7230 art  cwd    DIR    8,5      4096 11272193 /home/art
vim     7230 art  rtd    DIR    8,2      4096        2 /
vim     7230 art  txt    REG    8,2   2097296  5524129 /usr/bin/vim
vim     7230 art  mem    REG    8,2     43504  4980738 /lib64/libcrypt-2.14.90.so
vim     7230 art  mem    REG    8,2    129136  4980749 /lib64/libselinux.so.1
vim     7230 art  mem    REG    8,2    168512  4980787 /lib64/ld-2.14.90.so
vim     7230 art  mem    REG    8,2   2076800  4980849 /lib64/libc-2.14.90.so
vim     7230 art  mem    REG    8,2    145176  4980852 /lib64/libpthread-2.14.90.so
vim     7230 art  mem    REG    8,2     22696  4980869 /lib64/libdl-2.14.90.so
vim     7230 art  mem    REG    8,2     48128  4980853 /lib64/librt-2.14.90.so
vim     7230 art  mem    REG    8,2    603096  4980862 /lib64/libm-2.14.90.so
vim     7230 art  mem    REG    8,2     89592  4980864 /lib64/libgcc_s-4.6.3-20120306.so.1
vim     7230 art  mem    REG    8,2    122536  4980909 /lib64/libresolv-2.14.90.so
vim     7230 art  mem    REG    8,2   1768576  5511386 /usr/lib64/libpython2.7.so.1.0
vim     7230 art  mem    REG    8,2     25472  5507774 /usr/lib64/libgpm.so.2.1.0
vim     7230 art  mem    REG    8,2    390288  4981185 /lib64/libfreebl3.so
vim     7230 art  mem    REG    8,2     20144  4981210 /lib64/libattr.so.1.1.0
vim     7230 art  mem    REG    8,2    162128  4981202 /lib64/libtinfo.so.5.9
vim     7230 art  mem    REG    8,2     17512  4981201 /lib64/libutil-2.14.90.so
vim     7230 art  mem    REG    8,2     34392  4981212 /lib64/libacl.so.1.1.0
vim     7230 art  mem    REG    8,2    120624  4980926 /lib64/libnsl-2.14.90.so
vim     7230 art  mem    REG    8,2   1552816  5777033 /usr/lib64/perl5/CORE/libperl.so
vim     7230 art  mem    REG    8,2    951176  5510911 /usr/lib64/libruby.so.1.8.7
vim     7230 art  mem    REG    8,2     62552  4980826 /lib64/libnss_files-2.14.90.so
vim     7230 art  mem    REG    8,2 104997456  5507757 /usr/lib/locale/locale-archive
vim     7230 art    0u   CHR  136,3       0t0        6 /dev/pts/3
vim     7230 art    1u   CHR  136,3       0t0        6 /dev/pts/3
vim     7230 art    2u   CHR  136,3       0t0        6 /dev/pts/3
vim     7230 art    3u   REG    8,5     12288 11273358 /home/art/.archivodeprueba.swp

Si tuviera un puerto abierto aparecería algo como:

java    4643 acloc  121u  inet 0xe0000001b7328a00      0t0   TCP *:8009 (LISTEN)

Ahora, si de antemano se tiene el puerto abierto, se puede usar éste artículo para encontrar el ejecutable del proceso