Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
1) Witam mam taki mały skrypcik prosze pomoc mi rozwiazac problem... wiec tak...
#!/bin/bash
echo "Statystyki poł±czeń z NAT:"
IP=$(arp -n | grep C | grep -v eth0 | awk '{print $1 }')
SUM=0
for I in $IP
do
COUNT=$(grep $I /proc/net/ip_conntrack | wc -l)
if [ "$COUNT" -gt 0 ]
then
echo -e "$IIlosć poł±czeń: $COUNT"
SUM=$(($SUM+$COUNT))
fi
done
echo "W sumie Ilo¶ć poł±czeń wynosi: $SUM"
exit 0
Chciałbym by to co zostanie wypisane na ekran zostalo zapisane do pliku txt i by pomiar byl robiony co powiedzmy 10 minut....
z tym zapisaem do pliku nie moge sobie dac rady gdyz jak dopisze "> /vaw/www/nat.txt" zapisuje mi sie tylko ostatnia linijka a nie cala lista... jak to zrobic poprawnie.
2) jak ograniczyc uzytkownikom przez iptables ilosc polaczen wychodzacych z kompa....
Offline
... gdyz jak dopisze "> /vaw/www/nat.txt" zapisuje mi sie tylko ostatnia linijka a nie cala lista... jak to zrobic poprawnie.
zamiast > uzyj >> co dopisze linijke do pliku a nie nadpisze
2) jak ograniczyc uzytkownikom przez iptables ilosc polaczen wychodzacych z kompa....
"iptables ... -m connlimit --connlimit-above x -j DROP "
Offline
wiem ze >> nadpisze ale nadal ostatnia linijke tego co na ekranie sie wyswietla ale ja chce wszystko....
Offline
teraz to nie za bardzo rozumiem o co ci chodzi, jezeli chcesz aby kazda linijak zapisywala ci sie do pliku to musisz skrypt zmienic tak:
#!/bin/bash
echo "Statystyki poł±czeń z NAT:"
if [ ! -e /jakis_plik ]
then
touch /jakis_plik
fi
IP=$(arp -n | grep C | grep -v eth0 | awk '{print $1 }')
SUM=0
for I in $IP
do
COUNT=$(grep $I /proc/net/ip_conntrack | wc -l)
if [ "$COUNT" -gt 0 ]
then
echo -e "$IIlosć poł±czeń: $COUNT" >> /jakis_plik
SUM=$(($SUM+$COUNT))
fi
done
echo "W sumie Ilo¶ć poł±czeń wynosi: $SUM" >> /jakis_plik
exit 0
Offline
O to mi chodzilo :) dziekuje :) a powiesz jeszcze jak zrobic by pomiar byl prowadzony co 5 minut i automatycznei sie uruchamial... i jak zamias numeru IP wstawic nazwe uzytkownika... ?
Offline
mozesz to zrobic jak zwykle na kilka sposobow, najprosciej dopisz sobie linijke
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root /sciezka_do_skryptu
do pliku /etc/crontab i oczywisce zrestartuj demona ( ale uwazam ze pomiar co 5 minut jest za czesty, ja bym dal najmniej 15 -20 min minimum)
co do zamiany ip na nazwe hosta to mozesz sie pobawic z poleceniem grep + awk na pliku /etc/hosts. moze jest jakies komenda ktore to zrobi za ciebie ale ja jej nie znam :)
Offline
Ale rzeźnia :)
A nie prościej tak:
router ~ # sysctl net.ipv4.netfilter.ip_conntrack_count net.ipv4.netfilter.ip_conntrack_count = 13260
albo
router ~ # cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 12936
Offline
1) Witam mam taki mały skrypcik prosze pomoc mi rozwiazac problem... wiec tak...
#!/bin/bash
echo "Statystyki poł±czeń z NAT:"
IP=$(arp -n | grep C | grep -v eth0 | awk '{print $1 }')
SUM=0
for I in $IP
do
COUNT=$(grep $I /proc/net/ip_conntrack | wc -l)
if [ "$COUNT" -gt 0 ]
then
echo -e "$IIlosć poł±czeń: $COUNT"
SUM=$(($SUM+$COUNT))
fi
done
echo "W sumie Ilo¶ć poł±czeń wynosi: $SUM"
exit 0
skrypt ma jeden blad ;)
mianowicie jezli mas zusera o ip 11 i usera o ip 111 to zliczy z obu
prosta zasada grepa
mozesz to obejsc dajac po $I' '
wiecej man grep
pozdrawiam :)
Offline
@zlyZwierz oczywiscie ze jest prosciej :) ale w kernelach 2.4 bez patcha z patch-o-matic nie ma tego klucza/pliku. Samą sume mozna sprawdzac tez tak cat /proc/net/ip_conntrack | wc -l , ale powyzszy skrypt latwo zmodyfikowac aby podawal kto ma ile polaczen ( a nie tylko sume)
Offline