您的位置:首页 > 运维架构 > Linux

linux编译安装网卡驱动详解(网卡丢包)

2011-12-30 17:31 561 查看
脚本如下:

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

?>


效果图:




页面较为简单,只是为了演示而已,后续可以进一步强化,可以通过绘图等形式更加直观展示。
本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1633099
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: