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
pgptUDlEeud6M.pgp
Description: PGP signature

