Re: lug-bg: sum and sort with bash
- Subject: Re: lug-bg: sum and sort with bash
- From: Georgi Genov <ggenov@xxxxxxxxxxx>
- Date: Thu, 21 Oct 2004 16:39:26 +0300
Ivailo Ivanov wrote:
Zdraveite,
Imam fail sas sledata struktura:
source-ip-1 dest-ip bytes digit1 digit2 digit3
source-ip-2 dest-ip bytes digit1 digit2 digit3
source-ip-1 dest-ip bytes digit1 digit2 digit3
source-ip-1 dest-ip bytes digit1 digit2 digit3
-----------------------
source-ip-n dest-ip bytes digit1 digit2 digit3
Iskam da sortiram source ip-ta ta spriamo sumarnite
bytes ot vsiako ot tiah. Triabva da se polu4i neshto
takova, primerno:
1. source-ip-1 10929Mb
2. source-ip-6 1234Mb
3. sourceip-24 125Mb
--------------------
I taka natatak....
============================================================================
Да предположим, че:
source-ip-1 dest-ip bytes digit1 digit2 digit3
source-ip-2 dest-ip bytes digit1 digit2 digit3
source-ip-1 dest-ip bytes digit1 digit2 digit3
source-ip-1 dest-ip bytes digit1 digit2 digit3
е някакъв лог файл с име trafic.log
И да предположим, че знаеш всичко source-ip-*.
#!/bin/sh
source_ip_db="10.0.1.2 10.0.1.3 10.0.1.4 10.0.1.5 10.0.1.6"
for $source_ip in $source_ip_db; do
tmp_trafic_ip=`cat trafic.log | grep "$source_ip " | tr -s ' ' | awk '{
print $3 }'`
trafic_db[$source_ip]=$(echo "${trafic_db[$source_ip]} + $tmp_trafic_ip"
| bc)
echo "$source_ip ${trafic_db[$source_ip]}"
done
exit 0
Не обещавам това да работи все пак го писах на примависта.
Този скрипт би трябвало да работи точно така както ти поиска, но не
виждам смисъл от това, защото:
Ако стойността на bytes е някаква моментна стойност която се променя в
реално време не би било логичною
да я сумираш сама със себе си.
Ако пък това е текуща стойност то няма логика да я сумираш с какеото и
да е било.
А ако е някй брояч като на iptables, който рано или късно се нулира би
било логично да сравняваш новата стоиност с прямо старат,
и ако новата е по-голяма значи тя е актуалната и става стара. А ако
новата е по малка значи брояча се е нулирал и следва да
прибавиш новата стойност към старата, резултата е актуална стойност и се
записва като стара.
Ако това което съм ти написал по-горе не ти върши работа поясни какво
точно искаш!
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================
|