Edycja / Edytowanie / Jak edytować logi w tomato
|
lukasz_1410 |
Dodano 06-01-2010 19:13
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
Cytat obsy napisał/a:
logger `iptables -L download -vn`
logger `iptables -L upload -vn`
Oczywiście pamiętaj żeby później oceną się podzielić.
dogadamy sie :)
tylko gdzie mam te kody wkleić... gdzieś do pliku iptables czy w konsoli albo jeszcze gdzie indziej |
|
|
|
lukasz_1410 |
Dodano 06-01-2010 19:35
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
Dobra może inaczej.
W konsoli wpisuję
#iptables -N download
#iptables -N upload
#iptables -I FORWARD 1 -j download
#iptables -I FORWARD 2 -j upload
#iptables -A download -d 192.168.1.2
#iptables -A upload -s 192.168.1.2
#iptables -A download -d 192.168.1.4
#iptables -A upload -s 192.168.1.4
#iptables -A download -d 192.168.1.5
#iptables -A upload -s 192.168.1.5
#iptables -A download -d 192.168.1.6
#iptables -A upload -s 192.168.1.6
a potem
#iptables -L download -vn
#iptables -L upload -vn.
to ładnie działa wyświetlają się statystyki więc jest dobrze jakiś mały kroczek do przodu zrobiony bo wcześniej i to nie działało.
Dodatkowo jak teraz Kolega napisał to w konsoli dopisałem:
Cytat logger `iptables -L download -vn`
logger `iptables -L upload -vn`
I coś jeszcze gdzieś coś trzeba zmienić/dopisać aby te statystyki trafiały do pliku z logami: //var/log/message |
|
|
|
obsy |
Dodano 06-01-2010 19:44
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Wpisanie w konsoli 'logger `iptables -L download -vn`' to będzie jednorazowy wpis w logach. chcesz cyklicznie to do crona sobie to dodaj.
|
|
|
|
lukasz_1410 |
Dodano 08-01-2010 17:58
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
dla niektórych może to wydawać się śmieszne ale co i gdzie trzeba dodać/dopisać aby powyższe zadanie się wykonywało co minutę |
|
|
|
obsy |
Dodano 08-01-2010 18:20
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Ocena na trzy już.
Nie wiem którego tomato używasz, ale:
Administration > schedular >custom1 na enabled
wpisz sobie to coś
|
|
|
|
lukasz_1410 |
Dodano 08-01-2010 19:00
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
Jest dobrze nie wiedziałem że aż tyle potrafie...
ale byłoby jeszcze lepiej ponieważ plik z logami wyglądają następująco:
[/URL]
czy można byłoby zrobić jakoś tak żeby wyglądały np tak:
bo narazie zapisuje się wszystko w jednej linijce jeśli chodzi o logi natomiast w konsoli jest ładnie poukładane. W konsekwencji w pliku z logami ciężko bo ciężko ale można się doczytać informacji na temat 192.168.1.1 natomiast pozostałych już nie ma... |
|
|
|
MariuszNM |
Dodano 08-01-2010 20:44
|
User
Posty: 167
Dołączył: 18/11/2009 07:28
|
to sobie wpisz tak:
Cytat iptables -L download -vn | sed -n "3,$ s/\(.*\)/logger \"\1\"/p" | /bin/sh
|
|
|
|
lukasz_1410 |
Dodano 10-01-2010 14:18
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
jeszcze mam pytanie:
stosując:
iptables -L download -vn | sed -n "3,$ s/\(.*\)/logger \"\1\"/p" | /bin/sh oraz
iptables -L upload -vn | sed -n "3,$ s/\(.*\)/logger \"\1\"/p" | /bin/sh
wszystko w konsoli wyświetla się jako jeden ciąg:
da się to jakoś rozbić żeby widoczne było gdzie download i upload bo niestety obie komendy muszę stosować równocześnie... np. jakieś nagłówki albo coś?? |
|
|
|
lukasz_1410 |
Dodano 11-01-2010 12:19
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
jest cudownie ale pytanie czy da się wyciągnąć jeszcze MAC ?? |
|
|
|
obsy |
Dodano 11-01-2010 12:25
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
Nie. Ale możesz sobie mac adres z tablicy arp odczytać (arp -a), później sobie to jakoś możesz obrobić w skrypcie jedno i drugie.
|
|
|
|
lukasz_1410 |
Dodano 12-01-2010 01:33
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
to dobrze że nie da się :p
(echo "IP Download Upload" && \
(iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p" \
&& iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p" ) \
| sort | sed -n "/D/{N;s/\([^D]*\)D\([^\n]*\)\n\([^U]*\)U\(.*\)/\1\t\2\t\t\4/p }") \
| sed -e "s/^/logger \"/; s/$/\"/" | /bin/sh
a potrafi ktoś w prosty sposób opisać te znaczki to już wogóle czarna magia a zapewne nie obejdzie się bez wytłumaczenia
Edytowany przez lukasz_1410 dnia 12-01-2010 01:34
|
|
|
|
shibby |
Dodano 12-01-2010 09:19
|
SysOp
Posty: 17111
Dołączył: 15/01/2009 20:30
|
ze tak wyraze swoje zdanie: to jest kompletnie nieczytelne!
prosciej tablice zainstalowac lub chociaz samo stats.cgi i masz wszystko ladnie i przejrzyscie przedstawione.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
obsy |
Dodano 12-01-2010 09:24
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
@shibby: nie przeczytałeś wątku: on robi pracę dyplomową i ma to zrobić tak a nie inaczej. Później podzieli się z nami oceną.
(chociaż wkład w forum w postaci odpowiedniego artykułu z howto byłby nie do pogardzenia)
|
|
|
|
shibby |
Dodano 12-01-2010 09:34
|
SysOp
Posty: 17111
Dołączył: 15/01/2009 20:30
|
a no to zwracam honor racja artykul dobra rzecz.
Router: Unifi Cloud Gateway Max
Switch: Netgear MS510TXPP
Switch: Unifi USW-Flex-Mini - szt. 2
Wi-Fi: Unifi U6-Lite - szt. 2
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM #1: Synology SA6400
VM #2: Debian, WWW
VM #3: Home Assistant OS
|
|
|
|
MariuszNM |
Dodano 12-01-2010 09:51
|
User
Posty: 167
Dołączył: 18/11/2009 07:28
|
Aby to zrozumieć należy najpierw poczytać pare podręczników szczególnie do sed'a i bash'a. A potem przeanalizować działanie krok po kroku wpisując polecenia w konsoli.
Cytat iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p"
Cytat iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p"
Cytat (iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p" \
&& iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p" )
Cytat (iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p" \
&& iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p" ) \
| sort
Cytat (iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p" \
&& iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p" ) \
| sort | sed -n "/D/{N;s/\([^D]*\)D\([^\n]*\)\n\([^U]*\)U\(.*\)/\1\t\2\t\t\4/p }"
Cytat (iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p" \
&& iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p" ) \
| sort | sed -n "/D/{N;s/\([^D]*\)D\([^\n]*\)\n\([^U]*\)U\(.*\)/\1\t\2\t\t\4/p }") \
| sed -e "s/^/logger \"/; s/$/\"/"
Edytowany przez MariuszNM dnia 12-01-2010 09:59
|
|
|
|
lukasz_1410 |
Dodano 12-01-2010 10:56
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
a jakaś wersja mega przyspieszona jeśli chodzi o wyjaśnienie tego? pomijając książki - nie ukrywam mam czas do środy czy bardzo mało...
na szczęście muszę wyjaśnienie umieścić w pracy nie znać...
|
|
|
|
obsy |
Dodano 12-01-2010 11:00
|
VIP
Posty: 5775
Dołączył: 31/10/2006 20:06
|
OT: a teraz pomyśl co z Ciebie będzie za inżynier, jeżeli wszystko zrobimy za Ciebie.
|
|
|
|
lukasz_1410 |
Dodano 12-01-2010 12:00
|
User
Posty: 28
Dołączył: 09/12/2009 16:54
|
gdybym wiedział że to będzie takie skomplikowane to w życiu bym się nie pakował w taki temat pracy, ale nie powiem może faktycznie sam za wiele nie zrobiłem ale dużo się nauczyłem (więcej niż czytanie dokumentacji np iptables, z której nic nie zrozumiałem) korzystając z waszych porad
Edytowany przez lukasz_1410 dnia 12-01-2010 12:38
|
|
|
|
MariuszNM |
Dodano 12-01-2010 15:07
|
User
Posty: 167
Dołączył: 18/11/2009 07:28
|
sed jest to edytor strumieniowy (wlata text -> operacje -> wylata text)
Cytat iptables -L download -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[^1-9]*\([0-9\.]*\).*/\2D\1/p"
Wlata tekst z iptables i dla każdego wiersza z "0" jeżeli pasuje do wzorca: ileś spacji potem ileść cyfr od 0 do 9
potem ileść spacji, zapamiętujemy elementy różne od spacji w buforze 1, potem ileś znaków róznych od cyfr 1 do 9
zapamietujemy w buforze 2 ileś cyfr od 0 do 9 lub kropka a potem ileś dowolnych znaków.
Drukujemy na wyjście wartość z bufora 2 znak D i wartość bufora 1.
Czyli otrzymujemy tekst [adres_ip]D[transfer_d].
Cytat iptables -L upload -vn | sed -n "/0/ s/ *[0-9]* *\([^ ]*\)[- 0\*]*\([0-9\.]*\).*/\2U\1/p"
Wlata tekst z iptables i dla każdego wiersza z "0" jeżeli pasuje do wzorca: ileś spacji potem ileść cyfr od 0 do 9
potem ileść spacji, zapamiętujemy elementy różne od spacji w buforze 1, potem ileś znaków ze zbioru [- 0*]
zapamietujemy w buforze 2 ileś cyfr od 0 do 9 lub kropka a potem ileś dowolnych znaków.
Drukujemy na wyjście wartość z bufora 2 znak U i wartość bufora 1.
Czyli otrzymujemy tekst [adres_ip]U[transfer_u].
Tak połączony tekst ma postać:
[adres_ip]D[transfer]
[adres_ip]D[transfer]
[adres_ip]D[transfer]
[adres_ip]D[transfer]
:
[adres_ip]U[transfer]
[adres_ip]U[transfer]
[adres_ip]U[transfer]
[adres_ip]U[transfer]
:
Wżucamy to do programu sort, który robi:
[adres_ip]D[transfer]
[adres_ip]U[transfer]
[adres_ip]D[transfer]
[adres_ip]U[transfer]
[adres_ip]D[transfer]
[adres_ip]U[transfer]
[adres_ip]D[transfer]
[adres_ip]U[transfer]
:
Cytat sed -n "/D/{N;s/\([^D]*\)D\([^\n]*\)\n\([^U]*\)U\(.*\)/\1\t\2\t\t\4/p }"
To idzie dalej do seda który dla każdej lini z 'D' dołącza kolejną linię i sprawdza z wzorcem:
zapamiętujemy w buforze 1 ileś znaków różnych od D potem litera D zapamiętujemy w buforze 2 ileś znaków róąnych od \n (nowa linia)
potem \n zpamiętujemy w buforze 3 ileś znaków różnych od U potem litera U zapamiętujemy ileś znaków w buforze 4.
Jeżeli wzorzec jest OK do drukuje bufor 1 tabulacje bufor 2 dwie tabulacje bufor 4
Czyli mamy:
[aders_ip] [transfer_d] [transfer_u]
[aders_ip] [transfer_d] [transfer_u]
[aders_ip] [transfer_d] [transfer_u]
:
To idzie dalej do seda
i doklejamu z przodu 'logger "' i z tyłu '"'
Czyli mamy:
logger "[aders_ip] [transfer_d] [transfer_u]"
logger "[aders_ip] [transfer_d] [transfer_u]"
logger "[aders_ip] [transfer_d] [transfer_u]"
:
to jako skrypt wrzucamy do /bin/sh
i mamy koniec.
Edytowany przez MariuszNM dnia 12-01-2010 18:19
|
|
|
|
WRT54GL |
Dodano 04-02-2010 17:40
|
User
Posty: 1
Dołączył: 04/02/2010 17:35
|
Witam wszystkich na forum. Jestem tutaj nowy i znalazłem ładny temat który mnie zainteresował oraz pomógł mi za co z góry dziękuję. Mam pytanie czy ktoś mógłby mi wyjaśnić ten fragment:
#iptables -I FORWARD 1 -j download
#iptables -I FORWARD 2 -j upload
po co on jest i czy w ogóle trzeba go wpisywać |
|
|