Compteur internet ?

Bonjour,

Voilà je fais parti des heureux utilisateurs de debian et depuis peu je peux enfin me connecter à Internet. J’ai un forfait 50h en 56k et je me connecte avec pon. Je n’ai pas trouvé de script qui me permettrait de comptabiliser le temps passé sur Internet et cela m’incommode. Donc si quelqu’un se sent d’écrire un script ça serait magnifique autrement si quelqu’un pouvait au moins m’aiguiller dans mes recherches ça serait franchement pas mal.
Merci d’avance.

regarde les logs de ppp, (/var/log/syslog), a chaque fois il te donne la quantité de minutes consommées.

Après, il te suffit de parser ce fichier régulièrement, et une fois avant minuit (heure ou les logs tournent), pour pouvoir faire le compte.

Exemple de comptage:

Attention ce code n’est pas complet, il ne détectera JAMAIS un double comptage d’une ligne :wink:
Pour se faire, on peut imaginer un système qui converti chaque temps fourni par syslog en temps UNIX en seconde, et ensuite ne prendre en compte que les timestamp supérieur au dernier déja parsé.

Bonne chance,

#!/bin/sh

## Attention a bien définir PATH.
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

OLDMONTH=/var/tmp/lastmonth
CUMUL=/var/tmp/cumul

IFS="
"

[ -f $OLDMONTH ] || echo -n "Inv" >$OLDMONTH
[ -f $CUMUL ] || echo -n "0" >$CUMUL

for connect in `fgrep "Connect time" /var/log/syslog`; do
        ## Récupère le mois
  cumul=$(cat $CUMUL)
        month=$(echo $connect | awk '{print $1}')
        if [ "$month" != "`cat $OLDMONTH`" ]; then
     echo "Remise a zero du compteur." ## A commenter pour la production
     echo -n "0" > $CUMUL
     echo -n $month > $OLDMONTH
  fi

  duree=$(echo "$connect" | sed -e 's/.*Connect time \([0-9]*\).*/\1/')
  echo $duree
  cumul=$(( $cumul + $duree ))
  echo -n $cumul > $CUMUL
done

Oula ! Ben d’abord merci beaucoup pour votre réponse. Je n’ai pas la possibilité de tester ce script car je suis en déplacement mais je m’y atèle dès mon retour ! chapeau :open_mouth: