From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: =?koi8-r?Q?=22?=KoLyA=?koi8-r?Q?=22=20?= To: community@altlinux.ru Subject: Re[2]: [Comm] =?koi8-r?Q?=F0=CF=C4=D3=DE=C5=D4=20=D4=D2=C1=C6=C9=CB=C1?= Mime-Version: 1.0 X-Mailer: mPOP Web-Mail 2.19 X-Originating-IP: [195.5.16.154] Date: Mon, 23 Jun 2003 16:05:56 +0400 In-Reply-To: <20030620171749.7236efda.CityHawk@inbox.ru> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Message-Id: X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.1 Precedence: list Reply-To: community@altlinux.ru List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jun 2003 12:05:58 -0000 Archived-At: List-Archive: List-Post: -----Original Message----- From: "Eugene A. Suchkov" To: community@altlinux.ru Date: Fri, 20 Jun 2003 17:17:49 +0000 Subject: Re: [Comm] Подсчет трафика > > On Fri, 20 Jun 2003 18:55:41 +0600 > Леутин Александр wrote: > > > > Все бы ничего, только это все про ОБЪЕМ ТРАФИКА, а меня интересует > > > именно СКОРОСТЬ. > > Понял. Возможно, я перепутал выше сообщение с другим %-) > > И всё же -- лучше помогите уже существующим проектам (уверен, такие > > есть), не заставляйте других и сами не изобретайте велосипед :). > > Именно это я и пытаюсь сделать... > в общем так. простой скриптик, снимает статистику преданных/принятых байтов с /proc/net/dev. пускается по watch. хотя есть конечно iptraf, скорость показывает, но не совсем точно (на линии 115кБИТ он показывает скорость иногда до 30кБАЙТ/с). + я не знаю как его заставить логи вести. а вот и сам скриптик: ------------------------------------------------ #!/bin/sh ## "моментальная" скорость eth0 ## будет считать точнее если брать не через 1, а 2-5 секунд. ## тогда там где bc поменять 1 на соответственно 2 или 3 или ... etc. ###### САМОЕ ПЕРВОЕ: снять статистику st=$(cat /proc/net/dev|grep eth0) ###### дальше спокойно разбираем ###### переданные байты: db=$(echo $st|awk '{print $9}') ###### принятые байты: то же самое только awk '{print substr($1,6)}' db=$(echo $st|awk '{print substr($1,6)}') da=$(cat /tmp/oldc) echo $db>/tmp/oldc sp=`echo "scale=4;($db-$da)/(1*1024*1024)"|bc` echo $sp>>/tmp/speedlog echo $sp Mb/s ------------------------------------------------ надеюсь все понятно раскоментируйте снятие либо принятых либо переданных байтов первая цифра в логе будет лажовая, дальше нормально. перед запуском надо echo 0 > /tmp/oldc