lsof - edad del archivo

8

El comando * nix lsofle brinda una lista de archivos abiertos. ¿Alguien sabe de alguna manera que también indique cuánto tiempo ha estado abierto un archivo en particular? Ya sea mediante el uso lsofo cualquier otro comando. Estoy usando CentOS 5.3 y desafortunadamente no puedo instalar repositorios adicionales, así que tendría que trabajar desde los repositorios CentOS predeterminados.

Gracias

Kevin
fuente
1
¿Por qué necesitas eso? Actualmente tengo ni idea de cómo lograr que con cualquiera lsofo cualesquiera otras utilidades, por lo que tal vez hay una solución alternativa a su problema ...
plaes
Hay un problema específico de la aplicación (interna) y uno de nuestros procesos es mantener un archivo abierto, pero no puedo determinar si lo hace cada vez que se llama, por lo tanto, me gustaría ver la antigüedad de cada archivo abierto, es decir, archivo1 está abierto desde 2012-01-01 00:00:00, file2 está abierto desde 2012-01-02 00:00:00 etc.
2
Hay dos cosas en las que puedo pensar: strace -e open,close programo valgrindcon la --track-fds=yesopción.
Plaes

Respuestas:

3

Si tiene el pid, puede ingresar directamente / proc / $ pid / fd. Que parece ser el que se crean los descriptores de fichero.

Si echa un vistazo a su fecha de creación con un simple ls -lh, tal vez podrá saber cuánto tiempo ha estado abierto un archivo en particular.

Coren
fuente
0

A, no es una suposición muy exacta, podría ser usar el pid proporcionado por lsofy usar pspara averiguar desde cuándo se está ejecutando el programa que abrió el archivo. Por supuesto, esto solo funciona para archivos abiertos al inicio del programa, no para archivos abiertos más tarde.

arnep
fuente