Toon posts:

Uitdaging voor BASH/SH programmeurs

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hier nog al eens gepost, alleen hielpen deze scripts niet. Daarom ga ik meer uitleg geven en hoop ik dat hier enkele getalenteerde personen tussen zitten.

Ik zit op een netwerk met 60 computers, waar ik de upload en download van wil meten, dat kan ik ondertussen met ipac-ng. Hier werkt alles perfect, na het instellen van de ip adressen in rules.conf en het aanpassen van de conf file wordt het dataverbruik netjes bijgehouden in de bestanden.

Nu echter zoek ik een script, dat per IP adress controleert of de gebruiker over of op de toegelaten (9555555 K) [ ipacsum --fixed-quantity K -> zodat alles wordt uitgedrukt in kilobytes ] [som van de up-& download] zit en desnoods, indien erover of erop de bestaande internet verbinding verbreekt. Hiervoor heb ik in het firewall script, een 'iptables -t nat -A postrouting -s het.ip.adress -o netwerkkaart -j MASQUERADE' al de nodige aanpassingen gedaan (mocht het beter/anders kunnen laat iets weten), zodat dat script desnoods een 'iptables -D postrouting -t nat -s ip.Adress ...' kan uitvoeren om de verbinding te beeindigen.

De ipacsum --fixed-quantity K output is zo (exclusief de standaard headers):

192.168.5.99 - download : 9630K
192.168.5.99 - upload : 559K
192.168.5.98 - download : 9630K
192.168.5.98 - upload : 555K

Aan de mensen die me kunnen helpen, de distro die ik gebruik is uitgekleed, programma's zoals seq staan er niet op (smoothwall).

[ Voor 3% gewijzigd door Verwijderd op 23-02-2005 01:06 ]


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 13-02 16:17

Kees

Serveradmin / BOFH / DoC
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CMD='ipacsum --fixed-quantity K '
LIMIT=9555
BANCMD='echo limiet overschreden'
IPS=`$CMD | cut -d " " -f 1 | sort | uniq`
for IP in $IPS
do
DOWN=`$CMD | grep $IP | grep "download" | cut -d " "  -f 5 | tr -d 'K'` 
UP=`$CMD | grep $IP | grep "upload" | cut -d " "  -f 5 | tr -d 'K'` 
TOTAL=$[ $DOWN + $UP ]
echo Totale verkeer voor $IP: $TOTAL 
if [ "$TOTAL" -ge "$LIMIT" ] 
then
$BANCMD
fi
done


Overigens zou ik wel heel erg graag dingen willen zien die je zelf hebt uitgeprobeert, wat hierboven staat is redelijk basic allemaal

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan