close

 

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; }

.................................................................................

 

 

 

arrow
arrow
    創作者介紹
    創作者 echochio 的頭像
    echochio

    echochio

    echochio 發表在 痞客邦 留言(0) 人氣()