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.[/quote]
zamiast > uzyj >> co dopisze linijke do pliku a nie nadpisze
2) jak ograniczyc uzytkownikom przez iptables ilosc polaczen wychodzacych z kompa....[/quote]
"iptables ... -m connlimit --connlimit-above x -j DROP "
Nie ma nie idzie... jest nie umiem.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:"
[b]if [ ! -e /jakis_plik ]
then
touch /jakis_plik
fi[/b]
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" [b] >> /jakis_plik[/b]
SUM=$(($SUM+$COUNT))
fi
done
echo "W sumie Ilo¶ć poł±czeń wynosi: $SUM" [b]>> /jakis_plik[/b]
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
[/quote]
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
Time (s) | Query |
---|---|
0.00007 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00048 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.141.35.27' WHERE u.id=1 |
0.00091 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.141.35.27', 1732500658) |
0.00029 | SELECT * FROM punbb_online WHERE logged<1732500358 |
0.00065 | SELECT topic_id FROM punbb_posts WHERE id=62282 |
0.00094 | SELECT id FROM punbb_posts WHERE topic_id=7327 ORDER BY posted |
0.00028 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=7327 AND t.moved_to IS NULL |
0.00029 | SELECT search_for, replace_with FROM punbb_censoring |
0.00051 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=7327 ORDER BY p.id LIMIT 0,25 |
0.00083 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=7327 |
Total query time: 0.00531 s |