Freesco, NND, CDN, EOS
http://forum.freesco.pl/

HTB + MRTG - ilość użytkowników - rozwiązanie
http://forum.freesco.pl/viewtopic.php?f=24&t=11210
Strona 1 z 1

Autor:  marask [ sobota, 11 lutego 2006, 01:12 ]
Tytuł:  HTB + MRTG - ilość użytkowników - rozwiązanie

Ktoś jakiś czas temu prosił o skrypt do sprawdzania ilości osób korzystających z łącza, ale przy użyciu HTB.
WERSJA 2

: [/] [] ()
#!/bin/bash
#skrypt do liczenia ilości użytkowników w HTB
#zczytanie ilości przesłanych danych przez użytkownika
#do poprawnego wykonania skryptu muszą być prawa do zapisu(tworzenie dwóch plików)

ilosc_uzytkownikow=`tc -s qdisc | grep "Sent" | wc -l`
let "ilosc_uzytkownikow/=2"
let "ilosc_uzytkownikow-=1"

if [ -e "uzytkownicy.tmp" ]
then
    tc -s qdisc | grep "Sent" | cut -d " " -f 3 | tail -$ilosc_uzytkownikow >> uzytkownicy2.tmp

    odczyt1=`echo uzytkownicy.tmp`
    odczyt2=`echo uzytkownicy2.tmp`

    liczba_uzytkownikow=`diff -y "$odczyt1" "$odczyt2" | grep "|" | wc -l`
    mv "uzytkownicy2.tmp" "uzytkownicy.tmp"
else
    tc -s qdisc | grep "Sent" | cut -d " " -f 3 | tail -$ilosc_uzytkownikow >> uzytkownicy.tmp
   liczba_uzytkownikow="0"
fi
echo $liczba_uzytkownikow

hosts=`cat /etc/hosts| grep -v "^#"|grep [0123456789]|wc -l `
let hosts-=3
echo $hosts




Wystarczy wkleić to ZAMIAST pliku /etc/mrtg/hosty i powinno działać tak jak sprawdzanie po arp lub niceshaperze.

Działanie skryptu - aktywność użytkownika (dane ściągane) pomiędzy poszczególnymi wywołaniami skryptu (standardowo 300s (/etc/mrtg/mrtg.run))

Skrypt przygotowany do:
*HTB z pasmami ICMP i jednym do wysyłu w internet.
Można to sprawdzić poprzez wydanie polecenia:
Cytuj:
a=`tc -s qdisc | grep 'Sent' | wc -l`; b=`cat /etc/rchtb.d/htbusers.conf | wc -l`; let a/=2; let a-=3; echo $a $b

(w jednej linii!!!) Jeżeli zwrócone liczby są takie same to skrypt "pasuje" do tego systemu.
*Pliku hosts z trzema wpisami "nadmiarowymi" (::1, 127.0.0.1, 192.168.0.1)

Autor:  dexu [ sobota, 11 lutego 2006, 17:13 ]
Tytuł: 

U mnie pokazuje nieprawdziwe dane..
Aktualnie aktywne 1
Aktualnie wszystkie 110
a troche więcej userów jak 1 jest w sieci :)

plik mrtg.conf
#Ilosc uzytkownikow
Title[hosty]: Ilosc uzytkownikow
PageTop[hosty]: <center> <H1>Ilosc uzytkownikow</H1>
Target[hosty]: \`/etc/mrtg/hosty\`
MaxBytes[hosty]: 150
kilo[hosty]: 1000
ShortLegend[hosty]: &nbsp;
YLegend[hosty]: ilosc
Legend1[hosty]: Aktywne
Legend2[hosty]: Wszystkie
LegendI[hosty]: aktywne
LegendO[hosty]: wszystkie
#Options[hosty]: growright, gauge, nopercent, integer, nobanner, noinfo, nolegend

używam oczywiscie do podziału łącza HTB

Pozdrawiam.

Autor:  marask [ sobota, 11 lutego 2006, 19:40 ]
Tytuł: 

Ja mam tak:
: [/] [] ()
....
#Ilosc uzytkownikow
Title[hosty]: Ilosc uzytkownikow
PageTop[hosty]: <center> <H1>Ilosc uzytkownikow</H1>
Target[hosty]: `/etc/mrtg/hosty`
.....


poza tym w skrypcie było błędne założenie - sprawdzanie różnego up i down i dzielenie SUMY ilości różnić przez 2.

Teraz powinno działać. Dzięki za pomoc.

BTW Też się dziwiłem co tak nagle zaczęli mało neta używać ;]

Autor:  dexu [ niedziela, 12 lutego 2006, 18:26 ]
Tytuł: 

Dobra robota! Dzięki marask.

Pozdrawiam.

Autor:  marask [ niedziela, 12 lutego 2006, 20:15 ]
Tytuł: 

Nie ma sprawy ;] A może potrzebujesz jeszcze jakiegoś skryptu do MRTG? :>

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/