sebb.info
"Write programs that handle text streams, because that is the universal interface."
Creadores del sistema Unix.



> Recopilación de datos y métodos de control en un sistema GNU/Linux

  Las máquinas proveen mucha información acerca del hardware y del software instalados. He aquí un compendio de comandos y rutas para encontrar esta información.

  El sistema usado es Debian pero los comandos se pueden aplicar a la mayoría de los sistemas GNU/Linux. En la familia BSD hay algunos cambios, especialmente con los comandos de red como route; será menester consultar el manual.
  • El sistema nos entrega mucha información durante el arranque:
    sebb@nix ~ dmesg | less
    Con:
    sebb@nix ~ dmesg | head -1
    Linux version 2.6.18-4-k7 (Debian 2.6.18.dfsg.1-12etch2) (dannf@debian.org)
    (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21))
    ~1 SMP Wed May 9 23:42:01 UTC 2007
    Obtenemos los detalles del sistema operativo, kernel, gcc, etc.
  • El comando hostname enseña o fija el nombre de una máquina.
  • Con uname, tenemos un resumen, datos acerca del último inicio y la carga del procesador:
    sebb@nix ~ uname -a
    Linux debian 2.6.18-4-k7 #1 SMP Wed May 9 23:42:01 UTC 2007 i686 GNU/Linux
  • El fichero /etc/issue indica el nombre y versión del sistema operativo:
    sebb@nix ~ cat /etc/issue
    Debian GNU/Linux 4.0 \n \l
  • La estructura de directorios debajo de /proc nos entrega datos sobre el hardware:
    sebb@nix ~ cat /proc/version
    Linux version 2.6.18-4-k7 (Debian 2.6.18.dfsg.1-12etch2) (dannf@debian.org)
    (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21))
    ~1 SMP Wed May 9 23:42:01 UTC 2007
  • La herramienta lsb_release da más detalles:
    sebb@nix ~ lsb_release -a
    LSB Version:
    core-2.0-noarch:core-3.0-noarch:core-3.1-noarch:core-2.0-ia32:core-3.0-ia32:core-3.1-ia32
    Distributor ID: Debian
    Description:    Debian GNU/Linux 4.0r0 (etch)
    Release:        4.0r0
    Codename:       etch
  • lshw presenta una tabla del hardware:
    sebb@nix ~ lshw -short
  • El comando lsusb presenta detalles del concentrador USB y de los dispositivos usb conectados.
    sebb@nix ~ lsusb
  • Con lspci podemos listar los recursos pci de la máquina.
    sebb@nix ~ lspci
  • Con grep -i mem /var/log/Xorg.0.log Vemos detalles de memoria sobre la tarjeta gráfica.
  • Con grep -i ram /var/log/Xorg.0.log Vemos detalles de memoria sobre la tarjeta gráfica.
  • En /proc/acpi/ está la configuración de acpi en funcionamiento.
  • En /proc/cpuinfo se encuentran datos acerca del procesador.
  • En /proc/meminfo se encuentran datos acerca de la memoria.
  • Una descripción de las particiones está en /proc/partitions, y se puede usar fdisk -l para más detalles.
  • El comando df reseña el espacio usado y disponible en todos los sistemas de ficheros montados.
  • Con ps axu, listamos todos los procesos ejecutándose. Con ps faxu tenemos un arbol de procesos.
  • top nos informa de los procesos cargados y del uso del sistema.
  • Con la herramienta fuser podemos obtener datos de conexión por puerto:
    sebb@nix ~ puerto=80 ; echo -e "Conexiones a puerto $puerto:" ; ps -fea | \
    grep `fuser $puerto/tcp | awk '{ print $1 }'`
    Conexiones a puerto 80:
    80/tcp:
    root      3810     1  0 10:53 ?        00:00:00 /usr/sbin/apache
    www-data  3816  3810  0 10:53 ?        00:00:00 /usr/sbin/apache
    www-data  3817  3810  0 10:53 ?        00:00:00 /usr/sbin/apache
    www-data  3818  3810  0 10:53 ?        00:00:00 /usr/sbin/apache
    www-data  3819  3810  0 10:53 ?        00:00:00 /usr/sbin/apache
    www-data  3820  3810  0 10:53 ?        00:00:00 /usr/sbin/apache
    Otro ejemplo, las conexiones a ssh:
    sebb@nix ~ puerto=21 ; echo -e "Conexiones a puerto $puerto:" ; ps -fea | \
    grep `fuser $puerto/tcp | awk '{ print $1 }'`
  • El comando netstat: Todas las conexiones:
    sebb@nix ~ netstat -an
    Más detalles:
    sebb@nix ~ netstat -en
    Sobre tcp:
    sebb@nix ~ netstat -nat
    Formato largo:
    sebb@nix ~ netstat -luta
  • Estado de las interfaces de red:
    Todas los interfaces de red:
    sebb@nix ~ ifconfig -a
    Solo ethernet eth0:
    sebb@nix ~ ifconfig eth0
  • La información acerca de los DNS también puede estar en /etc/resolv.conf
  • El comando route permite ver o cambiar la tabla de enrutamiento IP.
    sebb@nix ~ route -v
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
    link-local      *               255.255.0.0     U     0      0        0 eth0
    default         pared.jacla     0.0.0.0         UG    0      0        0 eth0
  • Actividad de red:
    sebb@nix ~ tcpdump  -vv
  • Máquinas en la red local:
    sebb@nix ~ nmap -vv -sL -P0 192.168.0.*
  • lsof sirve para ver archivos abiertos, consultar el manual con man lsof:
    sebb@nix ~ lsof /dev/log
    COMMAND  PID USER   FD   TYPE     DEVICE SIZE   NODE NAME
    syslogd 2307 root    0u  unix 0xdf05dba0        5814 /dev/log
    kdm     3840 root    7u  unix 0xdbf0ca80        9149 /var/run/xdmctl/dmctl-
    ...


Primera publicación: 26 de Julio del 2007. Última actualización: 21 de Mayo del 2008.
El HTML40 cumple con las normas W3   La hoja de estilo CSS cumple con las normas W3