Accueil   Semaine   Mois   Occaz'   Compte   Forum   Bas
Jeudi 14 août 2008
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.

Icon_print