Ce que Zypher disait à propos de rrdtool (et de tout ce qui l'utilise comme backend - MRTG, Cacti, etc.) est probablement correct. RRDTool est conçu pour être un outil d'analyse de tendance historique «moyenne». Il fait la moyenne et stocke les compteurs par incréments de plus en plus non résolus à mesure qu'ils remontent dans le temps.
Ceci est cependant configurable en configurant les RRA de manière appropriée. J'avoue ne rien savoir de la configuration de ces derniers, cependant, et je n'ai jamais eu de chance personnellement de les obtenir juste au-delà de mon ensemble standard (15 minutes, 8 heures, 1 semaine, 1 mois, 1 an). Je recommanderais de regarder dans la configuration des RRA pour attendre une entrée quotidienne et de l'alimenter en compteur de bande passante à partir de netstat. Vous obtiendrez de très belles données historiques et un aperçu de vos modèles d'utilisation.
Pour répondre à votre problème actuel, assurez-vous de ne pas dépasser une limite de bande passante quotidienne; Je recommanderais de saisir quotidiennement les compteurs netstat pour l'interface en question. Vous pouvez comparer le trafic d'hier à l'instant t avec les compteurs d'aujourd'hui à l'instant t et savoir combien a été transféré. Un simple script avec un stockage de fichier texte plat de la valeur précédente suffirait probablement. Vous pouvez ensuite désactiver l'interface si vous détectez une bande passante dépassée ou la surveiller tout au long de la journée et informer un administrateur si vous approchez de votre limite.
Pour obtenir les octets d'entrée sur un système OSX, vous pouvez utiliser l'ensemble de commandes suivant:
netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'
Inversement, la sortie peut être obtenue avec:
netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'
Vous pouvez insérer les compteurs appropriés dans un fichier plat stocké quelque part et le comparer avec:
#!/bin/bash
set -e # exit if any error occurs
previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`
if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage
Ajustez simplement le traitement netstat pour qu'il corresponde à votre système (car je sais que vous n'exécutez pas OSX).