TeaLogPpp

PagePrincipale > TrucsEtAstuces > TeaLogPpp

J'ai cherché pendant longtemps comment récupérer la quantité de données transmises via ma connection ADSL. En fait pppd enregistre toutes ces informations dans les journaux systèmes.

Si votre distribution fonctionne comme la mienne (du point de vue de syslog), vous devez avoir un fichier /var/log/syslog qui contient le journal du système avec un max d'infos sur ce que fait votre ordinateur. De plus, si vous utilisez logrotate il y aura un certain nombre d'archives /var/log/syslog.1.gz /var/log/syslog.2.gz ... je ne me concentrerai ici que sur le fichier non compressé.
Note: ces fichiers ne sont généralement lisibles que par root.

Examinons le contenu de syslog, et comme c'est pppd qui nous intéresse nous allons utiliser la commande
cat /var/log/syslog|grep pppd
Voici un exemple de ce qu'on peut trouver

 Apr  6 13:17:28 salon pppd[1393]: pppd 2.4.1 started by root, uid 0
 Apr  6 13:17:28 salon pppd[1393]: Using interface ppp0
 Apr  6 13:17:28 salon pppd[1393]: Connect: ppp0 <--> /dev/pts/0
 Apr  6 13:17:30 salon pppd[1393]: Remote message: CHAP authentication success, unit 15627
 Apr  6 13:17:30 salon pppd[1393]: local  IP address 81.11.173.121
 Apr  6 13:17:30 salon pppd[1393]: remote IP address 81.11.173.1
 Apr  6 13:17:30 salon pppd[1393]: primary   DNS address 195.95.34.5
 Apr  6 13:17:30 salon pppd[1393]: secondary DNS address 194.119.232.3
 Apr  6 14:19:14 salon adsl-stop: Killing pppd
 Apr  6 14:19:14 salon pppd[1393]: Terminating on signal 15.
 Apr  6 14:19:14 salon pppd[1393]: Connection terminated.
 Apr  6 14:19:14 salon pppd[1393]: Connect time 61.8 minutes.
 Apr  6 14:19:14 salon pppd[1393]: Sent 756032 bytes, received 7960373 bytes.
 Apr  6 14:19:15 salon pppd[1393]: Exit.

Beaucoup d'informations intéressantes ici, et plus particulièrement les deux lignes mises en évidence. Tout d'abord, comme à chaque ligne du syslog, on a la date et l'heure à laquelle ces informations ont été enregistrées.

La première ligne nous donne le temps de connection, connection qui s'est terminée au moment où cette ligne a été enregistrée. Cette information intéressera particulièrement les personnes ayant une facturation à la durée de connection.

Plus intéressant, la seconde ligne nous dit combien d'octets ont été reçus et envoyés durant cette session de connection. Cette information est celle qui intéresse les personnes avec un forfait sur le nombre de données transmises.

Nous pouvons maintenant récupérer ces données pour les additionner sur une durée par exemple d'un mois, par exemple à l'aide d'un petit script awk.

D'abord le script qui accumule le tout, appelons-le ppplog

 #!/usr/bin/awk -f
 BEGIN{
    duree=0;
    sent=0;
    received=0;
 }
 /pppd/ && /Connect time/{
    duree+=$8;
 }
 /pppd/ && /Sent.+received/{
    sent+=$7;
    received+=$10;
 }
 END{
    print "duree (h): " duree/3600;
    print "envoye (Mo): " sent/1024/1024;
    print "recu (Mo):   " received/1024/1024
 }

Ensuite, pour se limiter au mois d'avril, il suffit d'utiliser grep

 cat /var/log/syslog|grep Apr|ppplog

Et voilà.

Le contenu de cette page est librement éditable et n'engage donc que son/ses auteur(s). LiLiT asbl n'en assume en aucun cas la responsabilité et se réserve le droit de retirer tout contenu jugé inaproprié.

dernière édition 15/11/2003 16h57 par 212.239.202.95