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


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.