Buscar aquí

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

No hay comentarios.:

Publicar un comentario