Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

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
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.