lsof - âge du fichier

8

La commande * nix lsofvous donne une liste des fichiers ouverts. Quelqu'un connaît-il un moyen qui indiquerait également depuis combien de temps un fichier particulier a été ouvert? Soit en utilisant lsofou toute autre commande. J'utilise CentOS 5.3 et, malheureusement, je ne peux pas installer de référentiels supplémentaires, je devrais donc travailler à partir du référentiel CentOS par défaut.

Merci

Kevin
la source
1
Pourquoi as-tu besoin de cela? Je n'ai actuellement aucune idée de comment y parvenir avec l'un lsofou l'autre des utilitaires, alors peut-être qu'il y a une solution alternative à votre problème ...
plaes
Il y a un problème spécifique à l'application (en interne) et l'un de nos processus garde un fichier ouvert, mais je ne peux pas déterminer s'il le fait à chaque fois qu'il est appelé, donc j'aimerais voir l'âge de chaque fichier ouvert, c'est-à-dire file1 est ouvert depuis le 2012-01-01 00:00:00, le fichier 2 est ouvert depuis le 2012-01-02 00:00:00 etc.
2
Il y a deux choses auxquelles je pourrais penser: strace -e open,close programou valgrindavec l' --track-fds=yesoption.
plaes

Réponses:

3

Si vous avez le pid, vous pouvez directement archiver / proc / $ pid / fd. Il semble que ce soit là que les descripteurs de fichiers sont créés.

Si vous regardez leur date de création avec un simple ls -lh, vous pourrez peut-être savoir depuis combien de temps un fichier particulier est ouvert.

Coren
la source
0

Une supposition - pas très exacte - pourrait être d'utiliser le pid fourni par lsofet d'utiliser pspour savoir depuis quand le programme qui a ouvert le fichier est en cours d'exécution. Cela ne fonctionne bien sûr que pour les fichiers ouverts au démarrage du programme, pas pour les fichiers ouverts ultérieurement.

arnep
la source