2013年8月7日

使用shell算使用頻寬

有些網路設備不提供即時頻寬,只好學Mrtg抓標準的snmp oid,再計算出當時使用頻寬..
以下範例是抓取  switch的port 48 ,ifspeed(port速率是100Mb),抓取間隔為60秒

tmp_port6_in=`/usr/bin/snmpwalk -v 2c -c public 10.110.1.252 1.3.6.1.2.1.2.2.1.10.48 | awk {'print $4'}`
old_port6_in=`cat /tmp/old_port6_in`
port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in \) \* 8 / 60 /1000000`
echo $tmp_port6_in > /tmp/old_port6_in
tmp_port6_ou=`/usr/bin/snmpwalk -v 2c -c public 10.110.1.252 1.3.6.1.2.1.2.2.1.16.48 | awk {'print $4'}`
old_port6_ou=`cat /tmp/old_port6_ou`
port6_ou=`/usr/bin/expr \( $tmp_port6_ou - $old_port6_ou \) \* 8 / 60 /1000000`
echo $tmp_port6_ou > /tmp/old_port6_ou


記得再rc.local 加echo 0 > /tmp/old_port6_in   和 /tmp/old_port6_out 
以免重開機時,檔案被清掉...

參考連結,內有算式   http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a008009496e.shtml   


part 2

發現有問題,
octet值是32位元的,超過最大值即歸零,最大值是4294967295 (2的32次方-1)。

shell 需要增加判斷式
if [ `expr $tmp_port6_in - $old_port6_in` -lt "0" ]
 then
   port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in + 4294967295 \) \* 8 / 60`
 else
   port6_in=`/usr/bin/expr \( $tmp_port6_in - $old_port6_in \) \* 8 / 60` 
 fi



參考連結: http://www.cisco.com/en/US/tech/tk648/tk362/technologies_q_and_a_item09186a00800b69ac.shtml

2013年7月30日

linux 下用文字介面抓取封包

tcpdump -i eth1 'port 80 and host 208.80.154.225' -w test4.txt

聽208.80.154.225 的port 80 寫到test4.xtx

2013年7月9日

Vi 取代 多行加mark


取代:
文件中的所有 abc 置換成 xyz
:%s/abc/xyz/g

多行前面加mark:
ctrl + v 選擇多行
I
#
esc

mrtg 超過100Mbps的網路流量會不準

因snmp v1 支援的數值較少,超過100Mbps,如1Gbps,10Gbps的流量就會監測不準,
需改用 snmp V2,指令如下...

cfgmaker --snmp-options=:::::2 public@10.110.1.249 >> mrtg.cfg

2013年6月18日

ubuntu 新增apache 網站

新增/etc/apache2/sites-available/<site name>
<VirtualHost *:8080> DocumentRoot /path/to/new/site ServerName www.example.com </VirtualHost>
啟動此網站 
sudo a2ensite <site name>

重啟apache
sudo /etc/init.d/apache2 restart

2013年5月5日

ubuntu eth0 或eth1 不見

新安裝網卡時,有時會發生eth0或eth1消失,或是eth1變成eth2,
設定/etc/network/interfaces 的IP設定無法正常設定,
使用mii-tool可以找到網卡,只是eth?錯亂.
刪除 /etc/udev/rules.d/70-persistent-net.rules,
再重新開機後,就會恢復正常...