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é.