關於流量統計 - BBS

Jacky avatar
By Jacky
at 2007-04-25T20:16

Table of Contents


ports 裡有沒有現成的套件可以統計 每小時/每日的流量(size) 單位bits ?

而不是 snmp+mrtg 統計的流量(rate) 單位bps

就像這樣 http://www.dumeter.com/images/screenshots/dumeter/totals.gif

以下是我用笨方法,去讀 mrtg 的 log file ,統計出每小時流量

hour+1
Σ mrtg_rate *Δt
t=hour

請大家參考看看,如果有更好的方法或軟體,請告知!

# /path/to/script.php localhost_1 2007 4 25 12
Output:
2007-04-25 12:00:00 ==> 2007-04-25 13:00:00
Input: 242455800 bits (28.902983665466 MB)
Output: 252297600 bits (30.076217651367 MB)
Total: 494753400 bits (58.979201316833 MB)


#!/usr/local/bin/php
<?php

$logfile = '/home/www/mrtg/'.$_SERVER['argv'][1].'.log';

if ($_SERVER['argc'] == 6)
{
$y = $_SERVER['argv'][2];
$m = $_SERVER['argv'][3];
$d = $_SERVER['argv'][4];
$H = $_SERVER['argv'][5];
}
else
{
$y=date('Y');
$m=date('m');
$d=date('d');
$H=date('H');
}

$hour_time = mktime($H,0,0,$m,$d,$y);

$total_in = 0;
$total_out = 0;

$lines = file($logfile);
$first_line = true;
$pre_time = 0;
$pre_in = 0;
$pre_out = 0;
foreach ($lines as $line)
{
if ($first_line)
{
$first_line = false;
continue;
}

$arr_line = explode (' ', $line);
if (count($arr_line) ==5)
{
$time = $arr_line[0];
$in = $arr_line[1];
$out = $arr_line[2];

if ($pre_time!=0 && $pre_time<=$hour_time) break;


if ($pre_time>$time && $pre_time<=$hour_time+3600)
{
$time_diff = $pre_time - $time;
$total_in += $pre_in * $time_diff;
$total_out += $pre_out * $time_diff;
}
$pre_time = $time;
$pre_in = $in;
$pre_out = $out;
}
}

echo date('Y-m-d H:i:s ==> ', $hour_time) . date("Y-m-d H:i:s \n", $hour_time+3600);

echo "Input: ${total_in} bits (" . $total_in / (8*1024*1024) ." MB)\n";
echo "Output: ${total_out} bits (" . $total_out / (8*1024*1024) ." MB)\n";

$total = $total_in+$total_out;
echo "Total: ${total} bits (" . $total / (8*1024*1024) ." MB)\n";

?>



--
Tags: BBS

All Comments

可以合併成一行嗎或更簡短

Olive avatar
By Olive
at 2007-04-25T01:53
※ 引述《Eintisy.bbsatbbs.cna.ccu.edu.tw (小俠原型機)》之銘言: : ※ 引述《igood.bbsatptt.cc (igood)》之銘言: : andgt; 作者: igood (igood) 看板: Linux : andgt; 標題: [問題] 可以合併成一行嗎或更簡短 ...

可以合併成一行嗎或更簡短

Jacky avatar
By Jacky
at 2007-04-24T11:56
※ [本文轉錄自 Linux 看板] 作者: igood (igood) 看板: Linux 標題: [問題] 可以合併成一行嗎或更簡短 時間: Tue Apr 24 11:56:22 2007 我想為每個文件夾再建立一個temp夾,並能使同群組的人都能寫入 find . -type d ...

make有辦法顯示錯誤的地方嗎?

Thomas avatar
By Thomas
at 2007-04-24T10:12
※ 引述《drlai (蘇打)》之銘言: : ※ 引述《chinsan.bbsatbbs.sayya.org (淡)》之銘言: : : 『make』的地方改用 gmake (devel/gmake) : : 根據你的描述,我猜大概是得用 GNU make(gmake)。 : 謝謝 : 好神奇,使用gmake完 ...

Re: BBS+unicode-rxvt+oxim

Odelette avatar
By Odelette
at 2007-04-24T08:54
: 我沒說裝 mrxvt 啊 : 是你說你用 mrxvt+oxim 可以讀不能輸入 : 所以要你研究如何設定讓 oxim 支援 zh_TW.Big5 的 mrxvt : 如果你只想裝好直接用 : 大概裝 x11/gnome-terminal 或 chinese/pcmanx 比較快吧 ok! 原po不見了!! ...

apache error

Iris avatar
By Iris
at 2007-04-24T02:41
※ 引述《pank.bbsat77bbs.com (7/17的新人)》之銘言: : ※ 引述《sherlinat.bbsatptt.cc (上海灘...)》之銘言: : : 請教一下 : : apache error log 出現大量像這樣的訊息 : : critical_acquire() failed: ...