OVH Cloud OVH Cloud

Liste des fichiers ouverts

1 réponse
Avatar
Léo Wauters
Salut tous,

Je cherche un moyen d'afficher les fichiers ouverts ou accédés en
temps réel, un peu à la manière d'un log couplé à un tail -f (en gros,
je voudrais qu'à chaque fois qu'un fichier est ouvert ou accédé, une
nouvelle ligne apparaisse à l'écran).
J'ai regardé du coté de lsof, mais mon bonheur ne s'y trouve pas...
même avec l'option -r, je ne vois pas comment faire, car toute la
liste est réactualisée.
y-a -til d'autres solutions que lsof ?
Vous avez des idées de programmes qui font cela ?

merci pour vos réponses ;)

Léo.
#Si ce problème t'interesse, tu es bien sur un collaborateur
#bienvenu...
#(et pi c interessant les raw sockets ethernet en C non ? ;) )
# - Vu sur fr.comp.reseaux.ip

1 réponse

Avatar
Jérémy JUST
On Fri, 12 Dec 2003 11:32:39 +0100
Léo Wauters wrote:

J'ai regardé du coté de lsof, mais mon bonheur ne s'y trouve pas...
même avec l'option -r, je ne vois pas comment faire, car toute la
liste est réactualisée.


Il suffit de la nettoyer, j'imagine.
Voici la première idée qui me vient:

<<<<< monitor_of.pl
#!/usr/bin/perl -w

use strict ;

my (%h, %old_h) ;

while(<>)
{if (/^=======n$/)
{%old_h = %h ;
%h = () ;
next ;
}

if (not exists $old_h{$_})
{print ;
}

$h{$_} = 1 ;
}








C'est assez sale, et en tous cas, c'est à peine testé (ça compile sans
erreurs, c'est déjà ça...).

Le premier problème que je vois, c'est que si un fichier est ouvert et
refermé rapidement (dans le dos de lsof), on ne le verra pas.
D'autre part, ça n'affiche pas les fermetures de fichiers (mais tu peux
facilement le modifier pour ça).


Vous avez des idées de programmes qui font cela ?


Ah, j'oubliais. Ça s'utilise comme ça:

# lsof -r | monitor_of.pl

--
Jérémy JUST