Profitez des offres Memoirevive.ch!
fseventer, pour surveiller l’évolution de votre système

Si je vous demandais quelles ont été les plus grandes innovations de MacOS X 10.4 (Tiger) d'abord, puis de MacOS X 10.5 (Leopard) ensuite, vous me proposeriez plusieurs réponses, mais je suis presque certains que deux choses reviendront souvent:

Car il faut bien admettre qu'il s'agit là de deux magnifiques outils qui nous simplifient grandement la vie.

Qu'ont donc en commun ces deux outils ? Et bien, ils ont tous les deux la faculté de savoir exactement ce qui a été modifié sur votre disque-dur de manière à l'indexer dans le cas de Spotlight et de le sauvegarder dans le cas de Time Machine.

Car en réalité, la plus grande nouveauté de MacOS X Tiger, celle sur laquelle se basent Spotlight et Time Machine, c'est au niveau du noyau, la couche basse de l'OS qu'elle se situe. Il s'agit d'un petit démon qui répond au doux nom de fseventsd.

En effet, ce que MacOS X 10.4 apportait de révolutionnaire, mais caché au commun des mortels comme vous et moi, c'était le concept des FSEvents, acronyme pour "FileSystem Events" ou en français "Evénements du système de fichier".

Grâce à ce démon, toute activité de votre disque-dur sera "surveillée" (attention, on ne parle pas de FBI ou de CIA, tout reste privé). En interrogeant ce démon, Spotlight saura ce qu'il faut indexer (fichiers modifiés, nouveaux fichiers) et ce qu'il faut effacer de l'index (fichiers supprimés). De même, c'est grâce à ce démon que Time Machine saura quels fichiers ont été modifiés ou effacés depuis la dernière sauvegarde.

Tout ça pour dire que nous avons là un outil formidable pour espionner notre Mac et voir ce qu'il s'y passe.

Ne vous êtes-vous jamais demandé quels fichiers étaient ajoutés lors de l'installation d'une application ou d'un plug-in (je me souviens que ToTheEnd avait posé cette question dans le forum) ? Ou alors, quelle application peut bien créer des fichiers invisibles ".16ACE94A" ou ".EC906D44" dans le dossier des préférences (véridique chez moi) ?

Toutes ces questions pourraient trouver une réponse grâce aux FSEvents.

Encore faut-il pouvoir accéder à cette information.

C'est justement le sujet d'aujourd'hui, puisque le but de cet article, après cette introduction interminable, c'est de vous présenter un petit logiciel qui tire profit pleinement de cette technologie, mais qui vous présente les résultats de manière intuitive.

Ce logiciel c'est fseventer.

image

Grâce à ce logiciel, aucune activité sur votre disque-dur ne vous échappera.

Plongeons directement dans le vif du sujet. Voici la fenêtre que vous obtenez une fois le logiciel lancé:

image

En haut à gauche, un bouton "Play" qui se tranforme en "Pause" une fois activé. C'est par ce bouton que vous démarrez la surveillance des évenements.

Une fois la surveillance démarrée, la fenêtre vous affichera sous forme d'arbre (ou de liste, en cliquant sur le bouton correspondant dans la barre d'outils, celui juste après le bouton "play/pause") les chemins complets vers les fichiers ayant été modifiés.

image

Vous pouvez naviguer dans les résultats grâce aux ascenseurs et zoomer grâce aux boutons tout en bas à droite.

Un double-clic sur un fichier ou un dossier va l'afficher dans le Finder, ce qui vous donne un accès rapide au contenu modifié.

En sélectionnant un fichier, on peut obtenir plus d'informations, comme le type de modification, le temps écoulé depuis la modification ainsi que le processus responsable de la modification. Par exemple:

image image image

Dans ces exemples, un fichier a été renommé par l'application Skim, SnapzPro X a créé un nouveau fichier (la capture précédente) et Mail a réceptionné un nouveau message

Ces mêmes informations peuvent être obtenues grâce à l'inspecteur, accessible par un ⌘-i ou par le bouton correspondant dans la barre d'outils:

image

La barre d'outils. L'inspecteur est appelé grâce à la première icône

image

L'inspecteur

La barre d'outils contient, outre l'inspecteur, un outil d'impression, un outil de marquage dont je n'ai pas compris l'utilité, un filtre (on va y revenir) et de quoi effacer le contenu de la fenêtre pour redémarrer à zéro la surveillance.

Vous le remarquerez tout de suite, si vous avez plusieurs applications chargées qui effectuent des opérations à intervalles réguliers (comme Mail, un lecteur de flux RSS ou un lanceur qui met à jour son index, par exemple), la fenêtre va très très vite se remplir de beaucoup de choses et il devient vite très difficile de s'y retrouver.

C'est pourquoi vous pouvez utiliser des filtres. Si vous regardez la barre d'outils dans la capture ci-dessus, vous y remarquerez une icône "Filters". En cliquant sur cette icône une barre supplémentaire s'affiche qui permet de se focaliser sur une partie seulement des événements:

image

Grâce aux filtres, on ne s'intéresse ici qu'à ce qui se passe dans le dossier Système de la racine du disque. Ce cas de figure est particulièrement intéressant car aucune application ne devrait installer quoi que ce soit dans ce dossier.

Dans l'exemple ci-dessus, j'ai manuellement créé un fichier "test" que l'on voit alors apparaître. En parallèle, beaucoup de choses se sont passées sur mon disque (nouveaux Mails, flux RSS rafraîchis), mais grâce aux filtres, je peux trier les événements et n'afficher que ceux qui concernent le dossier Système.

Si j'efface à présent ce fichier, fseventer me l'indique. Comme j'ai utilisé le Terminal pour cela, le processus indiqué par fseventer n'a pas de nom défini.

image

Voyons à présent un exemple concret.

Le jour où j'ai écrit cet article, Adobe a mis à disposition une nouvelle version du plug-in internet Adobe Flash Player. J'en ai donc profité pour installer ce plug-in, qui se présente sous forme de fichier ".pkg", tout en surveillant mon disque avec fseventer.

Le première chose que l'on voit, c'est que l'application Installer a été lancée (forcément). Puis le reçu de l'installation, un fichier ".pkg" que l'on retrouve dans le dossier "Receipts" a été créé:

image

Ce fichier contient les informations relatives au paquet d'installation comme son contenu et ses autorisations.

Si on descend un peu dans la fenêtre de fseventer, on trouve que, comme prévu, un fichier "Flash Player.plugin" a été ajouté au dossier "Internet Plug-Ins". On peut même voir de quoi il est composé:

image

En outre, on peut constater que de nombreux autres petits événements ont eu lieu:

image

En vrac, on y voit que le paquet d'installation a été copié dans un dossier temporaire pour être ensuite effacé, que les préférences de flash ont été modifiées de même que celle de l'application Installer (probablement parce que j'ai bougé la fenêtre et donc que la nouvelle position a été sauvée).

Comme c'est un peu le fouillis, on peut à nouveau utiliser les filtres. Mais on peut aussi aller faire un tour dans les préférences:

image

On y trouve dans l'ordre:

  • Le critère pour effacer un événement de la fenêtre
    • Après un certain temps
    • Enlever toutes les secondes le plus vieil événement
    • Ne jamais rien enlever
  • Le nombre maximum d'événements qui seront affichés
  • Le mode de détection des événements
  • L'apparence

Le mode de détection des événements est ce qui nous intéresse ici.

"Application & Volumes", comme son nom l'indique, n'affichera que les modifications liées aux applications et aux volumes (disques) montés sur cette machine.

Les deux autres: "FSEvents" et "Low-level fsevents" font tous les deux appel à notre fameux démon mais le second ira beaucoup plus en détails que le premier. Celui qui est utilisé par Spotlight et Time Machine est le premier: FSEvents.

Pour vous donner une idée de la différence entre les deux, voici à nouveau l'installation de Abode Flash, mais en ayant coché uniquement "FSEvents" dans les préférences:

image

On y voit beaucoup moins de choses, mais d'un autre côté, on y voit le principal. Pour le commun des mortels ou le non-geek, c'est ce mode qui sera le plus intéressant.

Comme vous le voyez, fseventer est un outil très pratique pour voir un peu ce qui se passe sur votre ordinateur, mais aussi pour se prévenir des applications qui en mettent un peu partout au mépris des règles d'usage.

Certes, vous n'allez pas l'utiliser tous les jours, mais comme il est gratuit pourquoi s'en priver. Et puis, si vous l'appréciez, pourquoi ne pas faire un don à l'auteur ?

Pour plus d'information sur les FSEvents, je vous invite à lire l'excellent article de ArsTechnica sur les nouveautés de MacOS X Léopard.

27 commentaires
1)
XXé
, le 14.08.2008 à 00:57

Un must, cet utilitaire !
GG en a parlé il y a peu sur sa liste consacrée aux machines mobiles d’Apple.

Merci pour le complément d’infos, Fabien.

Didier

2)
GG
, le 14.08.2008 à 07:55

Yeap !

C’est aussi un des rares utilitaires dont je parle dans mon bouquin, car c’est un outil génial d’aide au diagnostic en cas de problème avec un logiciel, pour savoir quelle pref est endommagée, consultée au lancement, etc.

3)
Fabien Conus
, le 14.08.2008 à 08:05

XXé, GG, c’est quoi cette fameuse liste ?

Je dois avouer mon ignorance. Est-ce un forum ? Une mailing-list ? Y a-t-il un lien pour y accéder ?

Sinon, merci pour vos commentaires :-)

4)
Sébastien Pennec
, le 14.08.2008 à 08:24

Magnifique outil, merci pour l’article Fabien! :-)

Il sera installé sur ma machine dès ce soir…

5)
François Cuneo
, le 14.08.2008 à 08:41

C’est beau en effet.

Mais c’est le genre d’utilitaires qui te montrent plein de choses, c’est dingue, et pis… chais pas quoi faire de ce qu’il me montre…

Cela dit, là, ça m’a l’air assez clair. Et pourrait (pourra) me rendre service. Par exemple, j’imagine que si la machine refuse de faire dodo, on pourrait voir quelle application vient l’empêcher?

6)
Droopy
, le 14.08.2008 à 08:48

Il s’agit d’une liste ou l’on parle des portables Mac et de tout ce qui tourne, ou qui se connecte. Son adresse est Mobile-Mac-fr@googlegroups.com On s’y inscrit et on participe

7)
Fabien Conus
, le 14.08.2008 à 08:50

François, je pense que l’utilité est surtout de voir quels sont les fichiers modifiés par une action (lancement d’une application, installation d’un logiciel, etc.)

Du coup, il permet de s’assurer que rien de malicieux n’arrive (installation de fichiers dans le dossier Système par exemple) et, dans le cas des logiciels qui ne s’installent pas via un .pkg, de contrôler qu’est-ce que est installé.

A moins que l’écriture dans un fichier en soit la cause, je doute que fseventer puisse diagnostiquer ton problème de mise en veille.

8)
Marcolivier
, le 14.08.2008 à 09:49

Salut Fabien,

Merci pour la revue de ce programme avec lequel j’ai pu “jouer” il y a quelque temps.

Peux-tu me dire s’il est possible, a posteriori, de découvrir quelle application, action, a créé un dossier/fichier non-identifié? Je m’explique, dans mes Documents, il y a des dossiers que je n’ai jamais créé et dont le nom n’évoque rien et j’aimerais savoir d’où ils viennent.

Merci beaucoup.

9)
Leo_11
, le 14.08.2008 à 10:28

Cet utilitaire pourrait-il m’aider à régler mon petit problème ???

10)
Fabien Conus
, le 14.08.2008 à 10:51

Marcolivier: Non, il n’est pas possible de faire cette vérification a posteriori. Les FSEvents ne le permettent pas.

Par contre, si tu as déjà quelques suspects, tu peux les lancer pour voir s’ils vont modifier ces dossiers.

Leo_11: euh… non, je ne pense pas.

11)
Marcolivier
, le 14.08.2008 à 11:46

Fabien: Merci pour ta réponse et suggestion.

12)
Caplan
, le 14.08.2008 à 12:21

Merci Fabien! Très joli!

S’il existait le même logiciel pour surveiller l’activité du cerveau humain, on ne verrait pas grand chose dans la fenêtre de ce type:

Milsabor!

13)
josiffert
, le 14.08.2008 à 17:54

Caplan, c’est archi faux se que tu dit!

On verrait ÉNORMÉMENT *de choses dans la fenêtre de ce type : Des tonnes des *BUGS *et des montagnes d’erreurs de *PROGRAMMATION *et *INPUT.

14)
Inconnu
, le 14.08.2008 à 18:56

Trop de mauvaises choses ou pas assez de bonnes, cela revient au même pour ce “personnage”. ;)

Jolie application Fabien ! Et beau test ! :)

15)
XXé
, le 15.08.2008 à 00:03

XXé, GG, c’est quoi cette fameuse liste ?

Petit complément à la réponse de Droopy : va voir sur Googlegroups, il y a un lien à droite pour rejoindre le groupe.

Didier

PS : GG, manque un pdf de ton bouquin, pour rechercher… plein de trucs.

16)
zit
, le 15.08.2008 à 09:35

Super, Fabien, c’est le genre d’outil indispensable, bien que d’un usage assez “ciblé”. Vais tester ça.

merci

z (et si on l’arrête jamais ? je répêêêêêêête : ça doit faire joli…)

17)
bens
, le 15.08.2008 à 16:23

Merci pour ce test intéressantissime.

Question: pourquoi certains fichiers sont-ils en caractères rouges et barrés?

18)
Fabien Conus
, le 16.08.2008 à 10:05

ben, les fichiers en rouge sont ceux qui ont été effacés.

19)
Tom25
, le 16.08.2008 à 19:57

Merci pour cet article. J’avais pensé que le logiciel pouvait nous indiquer ce qui avait été modifié AVANT (en utilisant les caches ou ???) mais non. Si j’ai bien compris, le logiciel fseventer n’indique que ce qui a été modifié APRES son lancement (et pendant qu’il reste lancé). C’est bien ça ?

Pour vérifier le merdier qu’installent certains logiciels comme Adobe, je lance FileBuddy après une instal et cherche les fichiers modifiés en derniers (en excluant cache etc.). Mais fseventer fera ça très bien.

20)
XXé
, le 16.08.2008 à 21:58

Si j’ai bien compris, le logiciel fseventer n’indique que ce qui a été modifié APRES son lancement (et pendant qu’il reste lancé). C’est bien ça ?

En effet, il faut le lancer juste avant l’instal et l’arrêter juste après. Sinon, ça s’encombre vite. C’est fou ce que ça bosse, un Leopard !

Didier

PS : oui, sans accent, Leopard et portant il est américain ! ;-)

21)
zoulou03
, le 17.08.2008 à 00:18

Fascinant. Juste un détail : à quoi ça sert ?? Lorsqu’on a constaté qu’un programme (je devrais dire TOUS les programmes) vient mettre un tas de trucs un peu partout (souvent avec des noms de fichiers abscons), on est bien avancé !!! Installez plutôt un firewall sérieux (c’est à dire pas celui d’OSX), avec règles paramétrables pour chaque programme et un anti spyware, ça sera plus utile que ce genre de gadget…

22)
XXé
, le 17.08.2008 à 00:38

ça sera plus utile que ce genre de gadget…

1) je ne vois pas bien le rapport entre un firewall et la liste des fichiers créés/modifiés lors de l’install d’un logiciel par exemple…
2) ce n’est pas parce que TU ne vois pas l’utilité du bidule qu’il ne servira à personne.

Didier

23)
Tom25
, le 17.08.2008 à 08:22

zoulou, ça te permet de virer tous les fichiers installés partout en même temps que le programme si celui-ci ne te convient pas (après un test du programme par exemple). Personnellement, si je teste 2 programmes et que j’hésite entre les 2, c’est sans aucun doute celui qui en mettra le moins partout que j’utiliserai. Et fseventer sert à le repérer.

Merci XXé pour cette précision.
Note : XXé AVEC un accent, tu n’es pas américain ;•) .

24)
Fabien Conus
, le 17.08.2008 à 13:22

Tom25, tu as tout compris.

En effet, un firewall n’y changerais rien dans ce cas.

25)
Tom25
, le 17.08.2008 à 16:05

Je me suis permis de proposer ce logiciel sur MacGratuit .

Par contre, l’icône est vraiment moche. C’est vrai que qu’on me fait souvent le même reproche sur mes propres logiciels mais là, même moi je le remarque :•) .

26)
pat3
, le 21.08.2008 à 19:01

Je viens de tester et effectivement, ça paraît très intéressant pour repérer ce que fait ton ordinateur (ça recoupe un peu le Moniteur d’activité, non,mais en plus lisible, surtout grâce aux filtres).

L’ennui, c’est que je l’avais installé puis oublié; mais en vérifiant grâce au Moniteur d’activité, je me rends compte qu’ouvert, il n’occupe aucune place en mémoire. Du coup, ça vaut peut-être plus le coup de l’ouvrir au démarrage, pour pouvoir lancer un enregistrement dès qu’on en a besoin, plutôt que de penser à lui un peu trop tard, après avoir lancé cette appli “qu’on ne pouvait plus attendre d’essayer” ;-)

27)
XXé
, le 22.08.2008 à 10:52

en vérifiant grâce au Moniteur d’activité, je me rends compte qu’ouvert, il n’occupe aucune place en mémoire. Du coup, ça vaut peut-être plus le coup de l’ouvrir au démarrage, pour pouvoir lancer un enregistrement dès qu’on en a besoin

S’il ne consomme rien en mémoire et rien non plus en temps processeur, ça peut en effet être intéressant, surtut qu’il y a une option qui permet de purger les événements de plus d’un certain temps.
Reste à vérifier que ça ne bouffe effectivement pas beaucoup de ressources si c’est en exploitation permanente…

Didier