Tail -f en PHP et Javascript
Ce script correspond à l’implémentation web de la commande unix bien connue
tail -f access_log
Cette commande unix permet d’afficher en temps réél le contenu d’un fichier qui grossit, typiquement cette commande est utilisé sur les fichiers de logs et permet par exemple de suivre l’access_log d’un serveur apache, ou encore les erreurs du fichier ‘php.log’.
L’équivalent du script php présenté ici permet exactement la même chose, mais par le biais d’un navigateur.
Vous pouvez donc consulter vos logs depuis votre travail, ou même depuis un cyber café sans avoir besoin d’un accès ssh.
Ce script ayant été développé spécialement dans un but d’utilisation par le web, il est même possible de le bookmarker et ainsi accéder facilement aux différents fichiers de log que vous voulez monitorer. En effet, on peut imaginer d’avoir un menu qui rassemblerait les urls d’accès aux différents fichiers de logs.
DEMOÂ
En fin de compte la commande ‘tail’ qui est déja trés utile, devient trés puissante utilisé en conjonction avec grep, et permet de n’afficher que les lignes contenant une certaine expression.
On peut imaginer de vouloir suivre les erreurs d’accès HTML, dans ce cas sous unix on utiliserait une commande de type
tail -f access_log | grep 404
Si on utilse un deuxieme grep avec le variateur -v, on obtient l’effet inverse et la commande n’affichera que les lignes qui ne contiennent pas l’expression passée en paramètre.
Par exemple la commande suivante affiche seulement les lignes qui ne contiennent pas l’expression 200
tail -f access_log | grep -v 200
Le script php, permet également d’avoir ces fonctionnalités, comme vous pourrez le voir dans la démo en ligne du web tail
Comment ca marche ?
La technique employé pour arriver à cet affichage temps réel, s’inspire des technologies AJAX, tout en étant bien moins lourde, puisqu’aucun fichier javascript n’est nécessaire.
De manière à ne pas bloquer le client web dans le cas d’un fichier qui grossirait trop vite, le nombre de ligne
ramené par rafraichissement est bloqué à 100 ( variable MAXLINESENT ).
Comment ca s’installe ?
Vous pouvez positionner ce script ou vous voulez dans votre arborescence, et lui donner le nom que vous voulez, ce qui apporte une sécuritée supplémentaire ( ce script est trés sensible puisqu’il permet de visualiser n’importe quel fichier accessible en lecture )
Il est fortement conseillé de placer celui-ci dans un répertoire connu de vous seul, et de le protéger par un .htaccess
Comment ca s’utilise ?
Vous positionnez votre navigateur sur l’url ou vous avez copié le script et :
- Vous définissez le chemin d’accès à votre fichier de log dans le formulaire.
- Vous choississez la fréquence de rafraichissement de la page en milliseconde
- L’affichage peut être de type unix ( affichage par le bas ) si vous cochez la case … unix
- Le bouton start|stop permet de mettre sur pause ou de relancer le rafraichissement
- Le bouton clear permet d’effacer l espace de rafraichissement
- La variable size correspond à la taille du text en % d’affichage de la police
- Les deux champs restant correspondent aux motifs utilsés pour avoir l’équivalence des commandes grep et grep -v ( voir plus haut ).
Génial ! ou est ce que je récupère le code ?
Ce script est distribué sous licence GNU et il est disponible ici.
Si vous le trouvez utile n’hésitez par à faire un lien vers cette page.
Le futur
Les developpements futurs envisagés sont :
- La mise en place d’alertes sonores pour certain motifs
- L’intégration du script au sein d’un framework d’aide à l’administration à distance de serveur dédié encapsulé HTTP ( ssh, vi ) sans l utilisation d’un produit tiers de tunneling.
Je suis ouvert aux suggestions n’hésitez pas à poster vos commentaires.
RSS

Le octobre 4th, 2007 a 11:54 pm
Vraiment un excellent script.
Je m’en sers actuellement pour suivre les logs de mon chan IRC en direct. J’ai donc rendu le script public en masquant certainnes infos.
En ce qui concernes les évenuelles améliorations, la possibilité de pouvoir sélectionner le dernier log (par date) d’un repértoire… Certainnement difficile à faire mais comparé à ce script…
Le novembre 1st, 2007 a 9:21 am
No Fax Pay Day Loan
I am guess that commissioners representing Los Angeles at times compliment cash loans
Le février 13th, 2008 a 1:52 pm
fichier log
This is similar to comment spam but avoids some of the safeguards designed to stop the latter practice.) Some individuals or companies