- 論壇徽章:
- 0
|
10可用積分
本帖最后由 david2003 于 2017-02-04 14:34 編輯
功能:用于對流量數(shù)據(jù)的采集,依次讀取throughput_info.txt文件每一行,每5分鐘執(zhí)行一次snmpwalk流量采集命令,以第一行為例,第一次snmpwalk -v 2c -c public 192.168.1.1 .1.3.6.1.2.1.2.2.1.10.180,執(zhí)行結(jié)果的值記為變量$previousnum,將5分鐘執(zhí)行后得到的值記為$currentnum。其它行也是按照這種進(jìn)行計算。
對throughput_portin1端口來說,要計算的流量數(shù)值,就是后一次采集的數(shù)值 與 前一次采集的差值,即$currentnum-$previousnum=$deltanum(流量包值)。需要記錄最新一次執(zhí)行snmpwalk采集的時間點(diǎn),記為$currenttime。每5分鐘采集前后端口名稱$portname、端口流量差值$deltanum、及采集時間點(diǎn)$currenttime均需要插入到oracle數(shù)據(jù)庫表中。
(1)#more throughput_info.txt (用于采集的端口名稱及命令,有多行數(shù)據(jù))
throughput_portin1 snmpwalk -v 2c -c public 192.168.1.1 .1.3.6.1.2.1.2.2.1.10.180
throughput_portout1 snmpwalk -v 2c -c public 192.168.1.1 .1.3.6.1.2.1.2.2.1.16.180
throughput_portin2 snmpwalk -v 2c -c public 192.168.1.2 .1.3.6.1.2.1.2.2.1.10.181
throughput_portout2 snmpwalk -v 2c -c public 192.168.1.2 .1.3.6.1.2.1.2.2.1.16.181
throughput_portin3 snmpwalk -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.183
throughput_portout3 snmpwalk -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.16.183
(2)throughput.sh的部分內(nèi)容
#采集端口數(shù)據(jù)的時間點(diǎn)
$currenttime=`date +"%Y/%m/%d %H:%M:%S"`
sqlplus report/report <<- EOF
insert into tab_throughput(portname,throughputnum,currenttime) values('throughput_portin1',$deltanum,'$currenttime');
commit;
EOF
在tab_throughput有幾列,portname字段對應(yīng)名稱(對應(yīng)throughput_info.txt第1列),throughputnum字段對應(yīng)$deltanum,currenttime字段對應(yīng) $currenttime
關(guān)于逐行讀取throughput_info.txt的數(shù)據(jù),并且每5分鐘采集后,記錄前后5分鐘的差值,如何實現(xiàn),請高手指點(diǎn)? 多謝。
|
|