- 论坛徽章:
- 0
|
架构如图 \r\n |-----------Router1------| \r\nworkstations-----gateway---- --Router2----Internet (N台Server ,public IP )\r\n |-----------Router3------|\r\n\r\nworkstations有三个工作a,b,c,需连接到公网服务器A,B,C。己知条件如下:\r\n1,有三条不同ISP的线路出公网\r\n2,workstations的三个工作出公网的线路不固定。即三个Router上都可能有三个工作的流量\r\n\r\n现在想分析a,b,c三个工作的实际需要带宽,具体实现方法:\r\nsec=300\r\ngw=\"gateway\'s ip\"\r\nserver1=\"server1\'s ip\"\r\nwhile [ 1 ]\r\ndo\r\nkillall tcpdump\r\nmv ip.packet ip.packet.1\r\ntcpdump -w ip.packet -s 0 tcp or udp &\r\nrrd_data=\"\"\r\ntraffic=`tcpdump -r ip.packet.1 src $gw and dst $server1 -v| sed -e \'s/.*, length: \\(.*\\))/\\1/g\' | awk -F \" \" \'{print $1}\'| sed -e\'s/)//g\'| tr \'\\n\' \'+\'`\r\n traffic=`echo ${traffic}0 | bc`\r\n traffic=`expr $traffic / $sec`\r\n rrd_data=$traffic\r\n echo $rrd_data >1.txt\r\n echo $rrd_data >>2.txt\r\nsleep $sec \r\n\r\ndone\r\n\r\n利用此shell得到数据大小,然后根据数据大小用rrdtool画图。现在的问题是采到的数据和实际的流量出入非常大(和iftop比较),请各位大大支招怎样采集流量数据?或有现存的脚本提供。 |
|