Source code 下載請到我的 github https://github.com/chio-nzgft/cacti-wan-speed-cheker
看到一個測量速度的PHP 覺得不錯 ...就在 OPENSHIFT cacti 使用
speed.php 程式如下 :
<?php
$kb=512;
echo "streaming $kb Kb...<!-";
flush();
$time = explode(" ",microtime());
$start = $time[0] + $time[1];
for($x=0;$x<$kb;$x++){
echo str_pad('', 1024, '.');
flush();
}
$time = explode(" ",microtime());
$finish = $time[0] + $time[1];
$deltat = $finish - $start;
echo "-> Test finished in $deltat seconds. Your speed is ". round($kb / $deltat, 3)."Kb/s";
echo"<title> speed:".round($kb / $deltat, 3)." </title>";
?>
在 OPENSHIFT使用 Cacti
建置 Cacti 參考
http://echochio.pixnet.net/blog/post/44424529
和
https://hub.openshift.com/quickstarts/38-cacti
那程式勒 ....
將上面的 speed.php 放在 WAN1 的一個 web 例如 http://12.12.12.12:8090/
openshift cacti 加的程式如下
例如名稱 wan1.php
網頁是 http://cacti-nz.rhclude.com/wan1.php
<?php
$http="http://12.12.12.12:8090/speed.php";
$buffer = file($http);
for($i=0;$i<sizeof($buffer);$i++)
{
$n1=strpos(" ".$buffer[$i],"<title>");
if($n1>0)
{
$n2=strrpos($buffer[$i],"</title>");
$title=substr($buffer[$i],$n1+7,$n2-$n1-7);
$title=iconv("UTF-8","big5",$title);
echo $title;
}
}
?>
在 openshift cacti 下寫個 script perl 抓這網頁 wan1-speed.pl
放在 cacti scripts 下.....
#!/usr/bin/perl
$a= `curl http://cacti-nz.rhclude.com/wan1.php`;
$a=~ tr/\n\r\z //d;
if ($a eq "") { $a=1 ; print "speed:$a"}
else {print $a; }
那設定 Cacti Console -> Data Input Methods ...
Input Type -> Script/Command
Input String -> perl <path_cacti>/scripts/wan1-speed.pl
Output filelds -> speed
其他如何設定不必詳述了吧 結果是 :
............................................................................................
有了wan1 上傳的速度
(由 opensift 下載 WAN1 ...就是WAN1 上傳到 opensift 速度)
...那下載 ? ....就反過來呀 !! ...
將speed.php 放在 openshift cacti
http://cacti-nz.rhclude.com/speed.php
將 wan1.php 放在 http://12.12.12.12:8090/wan1.php
<?php
$http="http://cacti-nz.rhclude.com/speed.php";
$buffer = file($http);
for($i=0;$i<sizeof($buffer);$i++)
{
$n1=strpos(" ".$buffer[$i],"<title>");
if($n1>0)
{
$n2=strrpos($buffer[$i],"</title>");
$title=substr($buffer[$i],$n1+7,$n2-$n1-7);
$title=iconv("UTF-8","big5",$title);
echo $title;
}
}
?>
在 openshift cacti 下寫個 script perl 抓 http://12.12.12.12:8090/wan1.php .....
#!/usr/bin/perl
$a= `curl http://12.12.12.12:8090/wan1.php `;
$a=~ tr/\n\r\z //d;
if ($a eq "") { $a=1 ; print "speed:$a"}
else {print $a; }
.................................................................................
留言列表