发布网友 发布时间:2022-04-22 14:57
共2个回答
热心网友 时间:2023-11-09 21:15
这个不会有人帮你写出个完整的shell。因为每台机器的操作系统都不一定吻合,不过我可以给你个自己做的参考:
1,启动你服务器的snmp服务器,编辑/etc/snmp/snmpd.conf
修改里面的 com2sec notConfigUser default <你的community名字>, 有困惑,可以在网上搜索snmp服务配置。然后/etc/init.d/snmpd start 启动服务。
2. 安装net-snmp
yum install net-snmp
3.验证你服务器snmp是否正确安装:
snmpwalk -v 2c -c <你自己设置的community> 127.0.0.1
有返回信息就是正确。
4. 写你shell程序,通过snmpwalk可查看各网卡端口流量,可根据下面我提供的信息你自己选择你要监控的端口。
[root@AAA snmp]# snmpwalk -v 2c -c <你自己定义community> 127.0.0.1 IF-MIB::ifHCOutOctets
IF-MIB::ifHCOutOctets.1 = Counter: 24533344
IF-MIB::ifHCOutOctets.2 = Counter: 1714076390
IF-MIB::ifHCOutOctets.3 = Counter: 0
IF-MIB::ifHCOutOctets.4 = Counter: 0
[root@AAA snmp]# snmpwalk -v 2c -c c <你自己定义community> 127.0.0.1 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter: 24540740
IF-MIB::ifHCInOctets.2 = Counter: 3011885260
IF-MIB::ifHCInOctets.3 = Counter: 0
IF-MIB::ifHCInOctets.4 = Counter: 0
实际shell赋值,可以通过snmpget命令而不是snmpwalk。比如:
[root@AAA snmp]# snmpget -v 2c -c <你自己定义community>127.0.0.1 IF-MIB::ifHCOutOctets.1
IF-MIB::ifHCOutOctets.1 = Counter: 24547627
这样,你就可以通过shell,吧值赋给变量,例子如下:
[root@AAA snmp]# var=`snmpget -v 2c -c <你自己定义community> 127.0.0.1 IF-MIB::ifHCOutOctets.1 | awk '{print $4}'`;echo $var
24581520
我已经提供全过程的信息给你了。具体你琢磨着去弄你的shell吧。
哈,有点头晕。。。如果只监测自己机器,楼上仁兄那个最好。采纳他吧。
热心网友 时间:2023-11-09 21:15
#!/bin/bash
#Filename:netflow.sh
#Usage:./netflow.sh &
while true
do
date +%Y-%m%d-%T>>netflow.log;ifconfig eth0 | sed -n '8p' >>netflow.log
sleep 1h
done
#脚本说明
#保存代码为netflow.sh
#./netflow.sh & 扔到后台启动
#每间隔1小时往netflow.log里写入时间、接收、发送、的数据。