脚本获取网口接口速率并存入mysql

脚本如下:


netflow.sh

#!/bin/bash
#
while true;do                ##死循环
R1=`cat /sys/class/net/eth0/statistics/rx_bytes`  ##获取eth0的收到流量字节数
T1=`cat /sys/class/net/eth0/statistics/tx_bytes`  ##获取eht0发送的流量字节数
#
sleep 5
R2=`cat /sys/class/net/eth0/statistics/rx_bytes`  ##获取5s后收到的流量字节数
T2=`cat /sys/class/net/eth0/statistics/tx_bytes`  ##获取5s后发送出去的流量数
#
TBPS=`expr $T2 - $T1`            ##相减
RBPS=`expr $R2 - $R1`
TKBPS=`expr $TBPS / 10240`        ##换算为KB,由于这里应该是除以1024 再处于8 然后再处于2s,所以这里直接就是使用10240,为了简化而已。
RKBPS=`expr $RBPS / 10240`
TIME=`date`                        ##当前时间
sql="insert into linux.netflow(TXBPS,RXBPS,TIME)values($TKBPS,$RKBPS,'$TIME')"
mysql -uroot -p123456 -e "$sql"        ##将数据插入mysql表中
#mysql -uroot -p123456 -e "select * from linux.netflow"
done



netflow.sql   ##创建mysql表(ID,TXBPS,RXBPS,TIME)

create database linux;
use linux;
create table netflow(ID int auto_increment primary key,TXBPS float,RXBPS float,TIME char(10));



使用过程如下:

①执行netflow.sql创建mysql表

[root@node2 ~]#  mysql  -uroot  -p < netflow.sql

②netflow.sh后台运行

[root@node2 ~]#  ./netflow.sh &    ##&是自己放到后台执行,脚本会不断的获取接口速率,然后保存在mysql中


③编辑php网页,实现web 方式查看流量信息

<?php
$conn=mysql_connect("localhost","root","123456");
if($conn)
{
        $sql="select * from linux.netflow limit 10";
        $result=mysql_query("$sql");
        echo "<center>";
        echo "<table border=1>";
        echo "<captive>eth0_speed</captive>";
          echo "<tr>";
                echo "<th>ID</th>";
                echo "<th>TIME</th>";
                echo "<th>RXBPS</th>";
                echo "<th>TXBPS</th>";
          echo "</tr>";
        while($filter=mysql_fetch_assoc($result)){
          echo "<tr>";
                echo "<td>$filter[ID]</td>";
                echo "<td>$filter[TIME]</td>";
                echo "<td>$filter[RXBPS]</td>";
                echo "<td>$filter[TXBPS]</td>";
          echo "</tr>";
        }
        echo "</table>";
        echo "</center>";
}
else{
        echo failure;
}

?>



效果图:

wKiom1UuYhiSEp8nAAQHdRR03VI137.jpg


页面较为简单,只是为了演示而已,后续可以进一步强化,可以通过绘图等形式更加直观展示。

你可能感兴趣的:(mysql,接口,sleep,流量)