求一个linux将监控网卡出入流量的shell脚本,每隔设定的时间输出到文本或其他地方存储

发布网友 发布时间: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里写入时间、接收、发送、的数据。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com