Le Dimanche 12 Décembre 2004 14:55, Sylvain Sauvage a écrit : > Sun, 12 Dec 2004 11:21:48 +0100, Julien Valroff a écrit : > > Bonjour ! > > > > Je cherche à récupérer la durée qui s'est écoulée depuis la dernière > > reconnexion de pppd (en temps réel). > > > > Quelques infos sur ma config : je suis connecté à l'adsl en ppoe, et > > utilise l'option persist de pppd. > > > > Le but est d'afficher ce temps sur une page web, me permettant de savoir > > si j'ai eu des problèmes de connexion. Je peux donc récupérer cette > > durée quand cette page est appelée (il ne s'agit donc pas vraiment de > > temps réel)... > > > > Quelqu'un a-t-il une idée ? > > Tu peux ajouter un script dans /etc/ppp/ip-up.d pour noter la date de > connexion dans un fichier. > Voir 'man date' pour un format facile à manipuler. > > Note : le nom du script ne doit comporter que des lettres, des chiffres et > des tirets (mais pas au début). Pas de point. Vérifier dans 'man > run-parts'. Bonsoir, et merci pour vos réponses. Je pensais qu'il existait une solution "toute faite", mais malgré mes recherches, je n'ai rien trouvé de mieux que d'utiliser les scripts ip-up.d. Pour les archives, voilà ce que j'ai utilisé : le script à placer dans /etc/ppp/ip-up.d/ : ============================= #!/bin/sh /bin/date +%s > /tmp/adsl_status /bin/echo $ip >> /tmp/adsl_status ============================= Celui dans /etc/ppp/ip-down.d/ (me permet de savoir que je ne suis pas connecté, je supprime tout simplement le fichier) : ============================= #!/bin/sh /bin/rm /tmp/adsl_status ============================= Le script qui me permet d'afficher l'information : ============================= <?php $cache = @file("/tmp/adsl_status"); function DateDiff($tfirst, $tsecond) { //returns an array with numeric values for in an array measuring days, hours, minutes & seconds $ret=array(); $totalsec=$tsecond-$tfirst; $ret['days']=floor(($totalsec/86400)); $totalsec=$totalsec % 86400; $ret['hours']=floor(($totalsec/3600)); $totalsec=$totalsec % 3600; $ret['minutes']=floor(($totalsec/60)); $ret['seconds']=$totalsec % 60; return $ret; } if ($cache == '') { echo "<center><h2>"; echo "<font color=\"red\">Connexion ADSL coupée</font>"; echo "</h2></center>"; } else { $date[] = DateDiff($cache[0],time()); echo "<center><h4>"; echo "Connecté depuis : <font color=\"red\">"; echo $date[0][days]."j "; echo $date[0][hours]."h "; echo $date[0][minutes]."m "; echo $date[0][seconds]."s"; echo "</font><br>"; echo "Adresse IP: $cache[1]"; echo "</h4></center>"; } ?> ============================= Je n'ai pas réussi à le faire en perl, j'ai donc choisi le php que je maitrise bien mieux. Si quelqu'un a une proposition... car le perl a l'avantage d'être également installer sur mon firewall (et j'affiche l'info sur mon serveur web). Quant à la solution proposée par Jacques L'helgoualc'h, à savoir utiliser awk pour aller cherche l'heure de la dernière connexion dans les logs, je n'ai pas réussi à la mettre en place, en particulier à cause de logrotate, qui fait tourner les journaux, et si la dernière connexion a eu lieu avant la rotation journalière, je ne peux plus retrouver l'info (à moins de chercher dans toutes les archives, et ça commence à faire une grosse moulinette pour un tout petit poisson). Merci encore pour vos propositions ! @+ Julien
Attachment:
pgpXQCYDpSHuU.pgp
Description: PGP signature