Hola, he leído aquí que lsof no es una forma precisa de obtener el número de descriptores de archivos que están abiertos actualmente. Él recomendó usar este comando en su lugar
cat /proc/sys/fs/file-nr
Si bien este comando muestra el número de FD, ¿cómo muestra la lista de descriptores de archivos abiertos que acaba de contar el comando anterior?
linux
bash
command-line
dimas
fuente
fuente
Respuestas:
Hay dos razones por las
lsof | wc -l
que no se cuentan los descriptores de archivo. Una es que enumera cosas que no son archivos abiertos, como bibliotecas cargadas vinculadas dinámicamente y directorios de trabajo actuales; necesitas filtrarlos. Otra es quelsof
tarda un tiempo en ejecutarse, por lo que puede perder archivos que se abren o cierran mientras se ejecuta; por lo tanto, el número de archivos abiertos enumerados es aproximado. Mirar/proc/sys/fs/file-nr
le da un valor exacto en un punto particular en el tiempo.cat /proc/sys/fs/file-nr
solo es útil cuando necesita la cifra exacta, principalmente para verificar el agotamiento de los recursos. Si desea enumerar los archivos abiertos, debe llamarlsof
o utilizar algún método equivalente, como el rastreo/proc/*/fd
manual.fuente
/proc/*/fd
directorios @dimas contienen enlaces simbólicos a los archivos abiertos. Para inspección visual, usols -l
. Para el tratamiento automatizado, utilicereadlink
para extraer el objetivo del enlace.setrlimit
(la llamada al sistema subyacente alulimit
comando de shell) son por proceso. Afectan solo el proceso que realiza la llamada (e indirectamente los procesos que luego se bifurca).El sistema mantiene dinámicamente la información del proceso en directorios bajo / proc. Por ejemplo, el proceso con PID 1234 tendrá un directorio llamado / proc / 1234.
Hay bastante información allí, pero en este momento está interesado en el subdirectorio / proc / 1234 / fd .
NOTA: Debe tener permisos de root para ver o abrir archivos para procesos que no son de su propiedad, así como para procesos SetUID.
Ejemplo:
También eche un vistazo al resto de los archivos en / proc ... aquí se encuentra mucha información útil del sistema.
fuente