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

27 septiembre 2012

Borrado rápido en VI

Vi tiene mil comandos de teclas, unos muy útiles son para borrar palabras o líneas.

  • Borrar desde una línea N hasta el inicio del archivo, se debe usar la secuencia: Escape d1G        así tal cual presionar la tecla escape, la letra d, el número 1 y G mayúscula (Shift + G)
  • Borrar desde una línea N hasta el final del archivo, se debe usar la secuencia: Escape dG           esto es, presionar Escape, seguido de la letra d y G mayúscula.
  • Borrar un caracter, para borrar un caracter hay que estar en modo Escape y presionar la letra x esto borra un caracter a la derecha, si no existen más carácteres a la derecha, comienza a borrar hacia la izquierda.
  • Borrar una palabra completa, para borrar una palabra completa (hacia la derecha) se presiona la tecla d y w también en modo escape.

Evitar el indent en VI


Puede pasar a veces que al copiar texto en VI, comience a colocar tabs en las líneas del archivo despues de caracteres como : ; , esto es que tiene habilitada la configuración de identar las líneas, lo que puede ser útil si se programa, pero una manera fácil de quitar esto temporalmente es usando el comando de vi:

:set noautoindent

Ojo, que primero hay que borrar lo copiado y después lo volvemos a pegar y será como el original :D

23 agosto 2012

Definir la tecla para borrar en Unix

Un lío clásico en Unix como definir la tecla para borrar el caracter anterior, sin duda hay varias formas, pero una simple de recordar es ejecutando

stty erase y se presiona la tecla de backspace (o borrado) y después enter

Con esto se reemplaza el molesto Ctrl-H u otra loca combinación de teclas.  Ojo! que dura la sesión.

16 agosto 2012

Shortcuts para herramientas windows

Si eres uno de lo que no les gusta pasar por una serie de ventanas para llegar a cambiar opciones, estos son algunos shortcut útiles:

  • inetcpl.cpl, opciones de internet.
  • tecla windows + R, ventana de ejecutar.
  • tecla windows + tecla pausa, propiedades del sistema, útil para revisar cosas como la RAM instalada, velocidad del procesador, ir al administrador de dispositivo, cambiar variables de ambiente, etc.
  • tecla windows + E, explorador de archivos.
  • services.msc, lista de servicios del sistema.




Trabajar con dos monitores

Hoy por hoy, en linux es bastante simple de trabajar con más de un monitor, pues los detecta sólo y existen herramientas gráficas que ayudan a solucionar algunos problemas.  Por ejemplo, Gnome, tiene una herramienta gráfica que ayuda a resolver el orden de los monitores, pero XFCE al parecer la mejor forma es hacerlo vía comando.  Primero, se debe saber como los monitores son conocidos por el sistema, para ello se ejecuta el comando xrandr sin parámetros:

[root@mardones2 ~]# xrandr
Screen 0: minimum 320 x 200, current 2646 x 1024, maximum 8192 x 8192
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024      60.0*+   75.0 
   1152x864       75.0 
   1024x768       75.1     70.1     60.0 
   832x624        74.6 
   800x600        72.2     75.0     60.3 
   640x480        72.8     75.0     60.0 
   720x400        70.1 
LVDS connected 1366x768+1280+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1280x720       59.9 
   1152x768       59.8 
   1024x768      120.1     60.0     59.9 
   960x720       120.0 
   928x696       120.1 
   896x672       120.0 
   800x600       120.0     60.3     59.9     56.2 
   848x480        59.7 
   700x525       120.0 
   720x480        59.7 
   640x512       120.0 
   640x480       120.0     59.9     59.4 
   512x384       120.0 
   400x300       120.6    112.7 
   320x240       120.1 
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)

Aquí se ve que el VGA-0 y LVDS, vga es monitor del notebook y LVDS es el monitor externo enchufado (bien podría ser un televisor o proyector... de ahí lo importante de saber primero como lo reconoce el sistema).


Así, si se quiere dejar el monitor del notebook como principal y el monitor externo orientado de tal forma, que al mover el mouse hacia la derecha pasar al monitor extendido podemos resolver esto de la siguiente forma:

xrandr --output VGA-0 --right-of LVDS

si se prefiere que el sentido contrario se usa --left-of

como siempre, man xrandr entrega las opciones, que pueden ser muy utiles.

11 julio 2012

Convertir numeros hexadecimales o binarios usando bc

Convertir números grandes puede ser un lío por ejemplo si queremos transformar a decimal el número 17870283321406128128 windows muestra un valor algo extraño con varias letras C, que no está bien.  Afortunadamente, unix hace mejor el trabajo y usando algo tan simple como bc, podemos obtener el valor correcto para ello se usa la opción obase=16 pues tenemos un decimal a hexadecimal:

servidor > bc
obase=16
17870283321406128128
 F800000000000000

y listo... ahi tenemos el valor real... ahora si tenemos un hexadecimal y queremos pasar a decimal:
servidor > bc
ibase=16
F800000000000000
17870283321406128128

Ahora, si queremos pasar de binario a decimal o hexadecimal, hay que usar el ibase u obase con =2, así por ejemplo:

servidor > bc
ibase=2
1010
10

obtenemos que el binario 1010 es un 10 decimal.

PD: para salir de bc se usa quit


12 junio 2012

Agregar/Quitar texto a cada línea de un archivo y/o reemplazar texto desde la consola

Un problema común para quienes les toca trabajar con archivos de texto, es que en alguna oportunidad, toca agregar o quitar texto de cada línea de un archivo, para qué? para realizar cargas masivas de datos por ejemplo... así, si queremos agregar por ejemplo una comilla al inicio de cada línea del archivo, se puede usar en vi estando en modo escape se escribe :%s/^/"/g    con esto, se agrega una comilla al comienzo de cada línea, para quitarla, es algo como: :%s/^"//g nótese que ahora el símbolo va acompañado con la comilla y al lado esta vacío.

Para el agregar o quitar al final de la línea?? se usa: :%s/$/"/g el símbolo $, representa el fin de línea, así se agrega la comilla al final de la línea.  Para quitarla igual que antes :%s/"$//g

Ahora para hacerlo desde afuera, se puede recurrir a sed y se utiliza casi la misma combinación de comandos.  En la consola para agregar escribiremos:

sed -e "s/^/"/g" nombrearchivo

El detalle acá es que el cambio lo mostrará en pantalla por defecto, entonces hay que redirigir la salida con un > nombre_archivo_destino, ie,

sed -e "s/^/"/g" nombrearchivo > nombre_archivo_destino

Debe notarse sí que la línea de arriba tiene un error, pues la comilla que aparece entre slash provoca un error, entonces es necesario "escapar" (significa agregar un back slash antes del caracter) la comilla, quedando así la línea:

sed -e "s/^/\"/g" nombrearchivo > nombre_archivo_destino

También, esto sirve si queremos incluir sed para tratar la salida de otro comando, por ejemplo, agregar algo a la salida del cat:

[root@localhost ~]# cat archivo
uno
dos
tres
[root@localhost ~]# cat archivo | sed "s/^/salto /g"
salto uno
salto dos
salto tres



03 mayo 2012

Que servicio tiene abierto el puerto X ?

Es una pregunta muy comun y por desgracia, uno se suele dar varias vueltas antes de saber eso.  Sin embargo, en linux, es fácil pues el netstat tiene una opcion -p que muestra el programa asociado al puerto, pero HP UX, no tiene esta opción pero sí, existe lsof.

Muy importante antes es que se debe ejecutar con el usuario root, para tner acceso completo a la información de los procesos del sistema.

Lsof es un comando muy potente, que al ejecutarlo sin opciones, muestra todos los archivos abiertos en el sistema... por ello la lista será muuuuuy larga.  Cómo ayuda lsof a encontrar la aplicación que utiliza el puerto, muy simple, con el switch -i, se debe ejecutar algo así:

Si quiero saber que aplicación tiene abierto el puerto 3001, que al filtrar la salida de netstat me muestra algo así:

tcp        0      0  *.3001                 *.*                     LISTEN

Ahora ejecuto:

lsof -i :3001                        

Nótese el : es obligatorio, entonces obtengo:

servidor1:> lsof -i :3001
COMMAND     PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
comando1 14892 temip   12u  inet 0xe00000032c54f080      0t0  TCP *:3001 (LISTEN)

Y aquí esta la respuesta, la aplicación comando1, cuyo PID es 14892, tiene levantado el puerto TCP 3001

Actualización:  otro detalle importante es que si existen muchas conexiones, intentará resolver los nombres de los servidores, para evitar la demora que pueda significar esto y muestre más rápido la información en sólo números, tanto para la dirección IP y el puerto se puede agregar la opción -nP, donde:

n es para que muestre la IP del servidor, y
P es para que muestre el número de puerto, no el nombre del servicio si está registrado en el el /etc/services

siendo más óptimo el comando: lsof -nP -i :3001


28 febrero 2012

Como revisar en un script si un archivo existe?

Muchas veces para realizar tareas simples, pero programadas necesitamos hacer que un script revise si existe un archivo determinado, esto es bastante simple, pero depende muchas veces del Sistema Operativo, en general, en bash en linux, se puede hacer con un:

if [ -e "rutadelarchivo" ]
then
     comandos
fi

Actualización 24-04.  Al usar el -e para algo como /home/katador/archivo*, es decir, me interesa saber si existen archivos que comiencen con la palabra archivo, al usar el -e sólo, no lo reconoce, entonces es factible usar el truco de:

if [ ls /home/katador/archivo* >/dev/null ]
then
      comandos

fi

Esto quiere decir que si ejecutamos un ls /home/katador/archivo* y existen archivos arrojará el listado de archivos, de lo contrario, arroja un error y utilizando esta misma salida del comando, se utiliza el If, pues sí existen archivos, sera TRUE, de lo contrario, al arrojar el error lo considera FALSE.

El >/dev/null, es la redirección del comando, para que no muestre nada por la salida estandar.
 

08 febrero 2012

Revisar disco utilizado por directorios en HP-UX

Para revisar el disco utilizado en las distintas carpetas, difiere un poco en HPUX de linux.  Por defecto du muestra todas las subcarpetas, tal como en Linux, pero para obtener los mismos resultados cambian los parametros:

- para obtener el tamaño de sólo una carpeta se puede utilizar:
                    du -ks /carpeta
   esto devuelve el numero de kilobytes y el nombre de la carpeta, el k es la opción para los kilobytes y s es para que imprima solo el gran total.
- ordenar la salida de du, por ejemplo de mayor a menor:
                     du -ks /carpeta | sort -nr
   con esto sale ordena de mayor a menor las opciones -n de sort, le indica un orden numérico y r que haga de mayor a menor (reverse).

 Además, si se tienen directorios montados en distintos disco, se hace más complicada la recopilación del espacio en disco, pues se debiera considerar sólo el espacio ocupado por cada device, para ello, se puede utilizar la opción -x que agrega la restricción, para contabilizar el espacio ocupado en el directorio solicitado y los siguientes que estén en el mismo disco, así, por ejemplo si se tiene un escenario donde:



Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3    4194304 3685800  504592   88% /
/dev/vg00/lvol1    2097152  183472 1899200    9% /stand
/dev/vg00/lvol8    15728640 12061944 3641728   77% /var
/dev/vg00/lvol6    10616832 4394432 6173848   42% /usr
/dev/vg00/lvol5    2097152 1536144  557096   73% /tmp
/dev/vg00/lvol4    8814592 5364512 3423184   61% /opt
/dev/vg00/lvol7    10485760 7725264 2739488   74% /home
/dev/vgtemipdb/lvol1
                   10485760   20063 9811597    0% /home/oracle/u01
/dev/vgtemipdb/lvol2
                   220200960 81325775 130199831   38% /home/oracle/data

entonces si interesa conocer de manera clara es espacio utilizado en el disco donde está el raíz, podemos utilizar:
                    du -ksx /* | sort -nr





31 enero 2012

Obtener velocidad de tarjeta de red en HPUX

En HPUX, una forma de obtener la velocidad de conexión de la tarjeta de red (que en linux podemos usar mii-tool) es utilizar el comando lanadmin con el parametro -x y el indice de la tarjeta que se quiere revisar.  Ahora si no se sabe cual tarjeta... una opción es usar el comando netstat -i nos muestra la estadísticas de red:

 netstat -i
Name      Mtu  Network         Address         Ipkts              Ierrs Opkts              Oerrs Coll
lan0      1500 10.181.23.0     prd1149         1624149909         0     2348185029         0     0
lo0      32808 loopback        localhost       10500568           0     10500568           0     0
lan4      1500 10.181.10.0     rsp1149         5177904            0     151                0     0

entonces si se ejecuta lanadmin -x 0:

lanadmin -x 0
Speed = 1000 Full-Duplex.
Autonegotiation = On.

24 enero 2012

Depurar scripts en HP-UX o linux

Una de las ventajas de los sistemas *nix, es que se puede hacer una depuración de los script usados en el shell de manera muy simple, mostrando línea a línea lo que ocurre, así por ejemplo, mostrará valores que toman las variables, las ejecuciones de comando, etc... esto sirve para bash, ksh y sh (si no saben que shell están corriendo pueden hacer un echo $SHELL o print $SHELL) la depuración consiste en agregar a la primera línea del script donde se encuentra algo como:

#!/usr/bin/ksh , o
#!/bin/sh , o
#!/bin/bash

le agregamos un -x, quedando #!/usr/bin/ksh -x con esto, la siguiente ejecución mostrará algo como:

> cat test_script.ksh
#!/usr/bin/ksh -x

QTY=1

while [ $QTY -lt 3 ]
do
    print "vez " $QTY
    QTY=$(( QTY + 1))
done

> test_script.ksh
+ QTY=1
+ [ 1 -lt 3 ]
+ print vez  1
vez  1
+ QTY=2
+ [ 2 -lt 3 ]
+ print vez  2
vez  2
+ QTY=3
+ [ 3 -lt 3 ]

Sin -x muestra por pantalla:
vez 1
vez 2

20 enero 2012

como ver el contenido de un paquete instalado en HP-UX

Si el paquete fue agregado con swinstall, se puede revisar con swlist -l file

Obtener información de hardware en HP-UX

En HP-UX, existe una serie de comandos que entregan información muy detallada del sistema:
  • cstm, interfaz de comando que permite obtener la información del sistema, se ingresa a una shell y se debe ingresar:
    • map all, con esto muestra una lista de todos los dispositivos del sistema.
    • selall, con esto se seleciona todo
    • infolog, muestra el log recopilado, con pausas y al final ofrece la opción de guardar el log (SaveAs) o no hacer nada (Done)
Si se tiene HP-UX 11.25, en cstm no muestra la información del clock de los procesadores, para ello es bueno ejecutar: /usr/contrib/bin/machinfo, que entrega información formateada, que probablemente sea suficiente.  Además aquí aparece información de los procesadores.

Si cstm no es capaz de recopilar la información, tambien se puede utilizar print_manifest, que arroja una salida formateada bastante util.  Ojo, que tal vez no este en el PATH, de ser así, en man print_manifest saldrá la ruta, en este caso para HP-UX 11.31 es /opt/ignite/bin/print_manifest.


También se puede utilizar ioscan, para obtener la lista completa, basta ioscan -f, con eso entrega la lista completa de hardware instalado en la máquina.

19 enero 2012

Cómo ver los procesos en forma de árbol, en Solaris y HPUX?

El comando ptree, tanto en Solaris y HP-UX sirve para obtener una lista jerarquizada de los procesos que están ejecutandose en el momento, por ejemplo, en HPUX donde estoy usando screen luce algo así:

PID         COMMAND
29501      screen -h 10000 -S amardone
 29503      /usr/bin/sh
  27588      telnet prd1082
 20897      /usr/bin/sh
 19846      /usr/bin/sh

La identación no es mucha, pero clarifica cual es padre y los hijos no? así se observa que dentro de screen hay tres consolas (/usr/bin/sh) y en una de ellas un telnet.

En particular HP UX, también se puede conseguir un resultado similar con el parámetro H, entonces el comando sería algo como:

ps -feH


Si al ejecutar arroja un error como éste:

ps: illegal option -- H
usage: ps [-edaxzflP] [-u ulist] [-g glist] [-p plist] [-t tlist] [-R prmgroup] [-Z psetidlist]


es porque no está la variable de ambiente UNIX95 que afecta a algunos comando como ps, de hecho si revisan la ayuda de ps, verán que en la opción -H dice (UNIX Standard Only.) esto significa que se debe asignar un valor a la variable UNIX95, que se hace con un tradicional export o setenv dependiendo del shell.

export UNIX95=1

con esto se obtiene el resultado esperado, aunque la salida tal como dije antes, es menos gráfica, algo como esto:

root      1806        1  0  May  1  ?        00:01:26   /usr/sbin/stm/uut/bin/sys/diagmond
root      2194  1806  0  May  1  ?        00:03:31     diaglogd
root      2195  1806  0  May  1  ?        00:17:04     psmctd

Si observan bien, hay un par de espacios de identación a la derecha para señalar los procesos hijos y para los que no sepan, la tercera columna es el ppid, el parent pid o pid padre.