当前位置:首页 » 编程软件 » linux网卡流量脚本

linux网卡流量脚本

发布时间: 2022-04-01 08:04:06

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

这个不会有人帮你写出个完整的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 = Counter64: 2458933344
IF-MIB::ifHCOutOctets.2 = Counter64: 1714076390
IF-MIB::ifHCOutOctets.3 = Counter64: 0
IF-MIB::ifHCOutOctets.4 = Counter64: 0
[root@AAA snmp]# snmpwalk -v 2c -c c <你自己定义community> 127.0.0.1 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 2458940740
IF-MIB::ifHCInOctets.2 = Counter64: 3011885260
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 0

实际shell赋值,可以通过snmpget命令而不是snmpwalk。比如:
[root@AAA snmp]# snmpget -v 2c -c <你自己定义community>127.0.0.1 IF-MIB::ifHCOutOctets.1
IF-MIB::ifHCOutOctets.1 = Counter64: 2458947627

这样,你就可以通过shell,吧值赋给变量,例子如下:

[root@AAA snmp]# var=`snmpget -v 2c -c <你自己定义community> 127.0.0.1 IF-MIB::ifHCOutOctets.1 | awk '{print $4}'`;echo $var
2458981520

我已经提供全过程的信息给你了。具体你琢磨着去弄你的shell吧。

哈,有点头晕。。。如果只监测自己机器,楼上仁兄那个最好。采纳他吧。

㈡ linux查看网络流量命令

方法一、nload工具
查看参数帮助命令:
nload –help
-a :这个好像是全部数据的刷新时间周期,单位是秒,默认是300.
-i :进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-m :不显示流量图,只显示统计数据。
-o :出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s.
-t :显示数据的刷新时间间隔,单位是毫秒,默认500。
-u :设置右边Curr、Avg、Min、Max的数据单位,默认是自动变的.注意大小写单位不同!
h|b|k|m|g h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
H|B|K|M|G H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!
Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。
如只监控eth0命令: nload eth0
方法二、iftop工具
1、iftop界面相关说明
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX: 发送流量
RX: 接收流量
TOTAL:总流量
Cumm: 运行iftop到目前时间的总流量
peak: 流量峰值
rates: 分别表示过去 2s 10s 40s 的平均流量
2、iftop相关参数
常用的参数 《Linux就该这么学》
-i 设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),帮助,显示参数信息
-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b 使流量图形条默认就显示;
-f 这个暂时还不太会用,过滤计算包用的;
-P 使host信息及端口信息默认就都显示;
-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
进入iftop画面后的一些操作命令(注意大小写)
按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用Shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。
方法三、 ifstat
参数:
-a 监测能检测到的所有网络接口的状态信息
-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的
-i 指定要监测的接口,后面跟网络接口名
时间:
-T 报告所有监测接口的全部带宽
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-b 用kbits/s显示带宽而不是kbytes/s

㈢ linux下插上一个3G上网卡设备后怎么自动执行脚本,让它自动拨号上网

可以通过udev rule来设置插入3G上网卡之后自动执行指定脚本。

㈣ linux网卡流量脚本该如何查看

找到网卡流量脚本所在的路径和名字
使用vi编辑器进行编辑 vi /路径/脚本名字
或者用cat /路径/脚本名
即可查看脚本

㈤ 求liunx系统监控脚本,监控cpu的利用率 IO使用率 网卡流量 cpu的负载,

dfhg fdgh hdsnrhichdh

㈥ 如何用指令查看linux的网卡吞吐量或最大网卡流量

linux查看网卡吞吐量和网卡流量用自带命令,iptraf查看。

1 命令行直接输入:iptraf(如果没有,使用yum install iptraf安装)

此外还有很多工具命令可以查看:

watch命令:

watch -n 1 "/sbin/ifconfig eth0 | grep bytes"。

㈦ 在Linux下怎么看网络流量

Linux查看网络流量

在GUI下面,有一大把的工具可以显示网络流量,那么,命令行下面怎么办?

显然办法是有的,比如,ifconfig,会有这样的输 出:
RX bytes:1224128649 (1.1 GiB) TX bytes:34114947 (32.5 MiB)

过 一会再看,数值有所变化,两者的差值就是过去一段时间的流量。可是,这也太不人性化了……

正所谓自己动手,丰衣足食,我们自己来写一个脚 本,实时显示并刷新!

脚本如下,还是哪句话,本人功力有限,写脚本的原则是够用就好。

#!/bin/bash

if [ -n "$1" ]; then
eth_name=$1
else
eth_name="eth0"
fi

i=0

send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
send_n=$send_o
recv_n=$recv_o

while [ $i -le 100000 ]; do
send_l=$send_n
recv_l=$recv_n
sleep 1
send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
i=`expr $i + 1`
send_r=`expr $send_n - $send_l`
recv_r=`expr $recv_n - $recv_l`
total_r=`expr $send_r + $recv_r`
send_ra=`expr /( $send_n - $send_o /) / $i`
recv_ra=`expr /( $recv_n - $recv_o /) / $i`
total_ra=`expr $send_ra + $recv_ra`
sendn=`ifconfig $eth_name | grep bytes | awk -F /( '{print $3}' | awk -F /) '{print $1}'`
recvn=`ifconfig $eth_name | grep bytes | awk -F /( '{print $2}' | awk -F /) '{print $1}'`
clear
echo "Last second : Send rate: $send_r Bytes/sec Recv rate: $recv_r Bytes/sec Total rate: $total_r Bytes/sec"
echo "Average value: Send rate: $send_ra Bytes/sec Recv rate: $recv_ra Bytes/sec Total rate: $total_ra Bytes/sec"
echo "Total traffic after startup: Send traffic: $sendn Recv traffic: $recvn"
done

该脚本(假设名叫traffic)默认显示eth0的流量,如果你有多个网卡,请将网卡作为参数传进去,比如:
./traffic eth1

运行结果如下:

㈧ 高分求LINUX网卡每月流量达到100G自动关闭系统的脚本。。。

#!/bin/bash
i=ifconfig | grep "RX bytes" | awk -F ":" '{print $2}' |awk 'NR==1{print $1}'
if [ $i -gt 100000000000 ];then
init 0
fi

㈨ 高分求LINUX网卡每月流量达到100G自动关闭系统的脚本。

哈哈.如果你是32位的系统,别想了.好像系统统计是6G多就是上限了.然后会变成从0开始继续循环.如果你是64位的系统,那还有意义.

很简单的.用到2个命令.
定时运行脚本.

一个是ifconfig 使用grep和sed出流量大小.然后做个判断是否大于100G

然后是ifdown eth0网卡,如果你是eth0网卡的话.如果是拨号的则ppp0的.

单纯的伸手党在linux世界里是不受欢迎的,毕竟linux是一个让人自学的系统.一般是别人给提示.

㈩ 如何在Linux下统计高速网络中的流量

一般的linux下可以通过

/proc/net/dev

文件对某个或多个网络接口进行流量监控

通过定时读取该文件中的数据然后通过计算就可以算是当前是否有数据流通

并且流通的速度

该文件内部也记录了该网络接口所有流通的流量数量和数据包的数量

包括上传与下载的数量


下面是一个利用该文件的简单代码

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<ncurses.h>
#include<pthread.h>
#include<locale.h>

typedefstruct
{
unsignedlonglongintup_bytes;
unsignedlonglongintdn_bytes;
unsignedlonglongintup_packs;
unsignedlonglongintdn_packs;
}SP;

intget_traffic(SP*sp,char*interface)
{
char*buf=NULL;
size_tlen;
FILE*fp;

if((fp=fopen("/proc/net/dev","rb"))==NULL)
{
perror("Read/proc/net/devError!");
return-1;
}

while(!feof(fp))
{
getline(&buf,&len,fp);
if(buf==NULL)
return-1;

if(strstr(buf,interface))
break;

free(buf);
buf=NULL;
}

if(feof(fp))
{
printf("CanNotFind%sInterface! ",interface);
fclose(fp);

return-1;
}

sscanf(buf,"%*[^:]:%lld%lld%*s%*s%*s%*s%*s%*s%lld%lld",
&sp->dn_bytes,&sp->dn_packs,
&sp->up_bytes,&sp->up_packs);

free(buf);
fclose(fp);
return0;
}

void_quit(WINDOW*win)
{
while(getchar()!='q')
continue;

delwin(win);
echo();
endwin();

exit(0);
}

voidhelp(void)
{
printf("Use: ");
printf("netsp[interface] ");

exit(-1);
}

intmain(intargc,char**argv)
{
unsignedlongup_times=0;
unsignedlongdn_times=0;
doubleup_bytes;
doubledn_bytes;
doubleup_sp;
doubledn_sp;
SPstart,end,temp;
WINDOW*win;
intx,y;
pthread_tthread;

if(argc!=2)
help();

setlocale(LC_ALL,"");
if(get_traffic(&start,argv[1])==-1)
return-1;

initscr();
curs_set(0);
noecho();
if(has_colors())
{
start_color();
use_default_colors();
init_pair(1,COLOR_CYAN,-1);
init_pair(2,COLOR_GREEN,-1);
}

getmaxyx(stdscr,y,x);
win=newwin(12,30,y/2-10/2,x/2-30/2);
refresh();
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
wrefresh(win);
pthread_create(&thread,NULL,(void*)_quit,win);

while(1)
{
get_traffic(&temp,argv[1]);
usleep(500000);
//sleep(1);
++up_times;
++dn_times;
get_traffic(&end,argv[1]);

if(up_times%10==0)
{
up_times=1;
start.up_bytes=temp.up_bytes;
}

if(dn_times%10==0)
{
dn_times=1;
start.dn_bytes=temp.dn_bytes;
}

if(end.up_bytes-temp.up_bytes==0)
{
up_times=1;
temp.dn_bytes=start.dn_bytes;
get_traffic(&start,argv[1]);
start.dn_bytes=temp.dn_bytes;
}

if(end.dn_bytes-temp.dn_bytes==0)
{
dn_times=1;
temp.up_bytes=start.up_bytes;
get_traffic(&start,argv[1]);
start.up_bytes=temp.up_bytes;
}

wattron(win,COLOR_PAIR(2));
up_bytes=(double)end.up_bytes/1024/1024;
dn_bytes=(double)end.dn_bytes/1024/1024;

if(up_bytes<1024)
mvwprintw(win,2,6,"已上传%.2fMB",up_bytes);
else
mvwprintw(win,2,6,"已上传%.2fGB",up_bytes/1024);
if(dn_bytes<1024)
mvwprintw(win,3,6,"已下载%.2fMB",dn_bytes);
else
mvwprintw(win,3,6,"已下载%.2fGB",dn_bytes/1024);

mvwprintw(win,5,6,"已上传包数量%ld",end.up_packs);
mvwprintw(win,6,6,"已下载包数量%ld",end.dn_packs);

up_sp=(double)(end.up_bytes-start.up_bytes)/up_times/1024*2;
dn_sp=(double)(end.dn_bytes-start.dn_bytes)/up_times/1024*2;

if(up_sp<1024)
mvwprintw(win,8,6,"上传速度%.2fkb/s",up_sp);
else
mvwprintw(win,8,6,"上传速度%.2fmb/s",up_sp/1024);
if(dn_sp<1024)
mvwprintw(win,9,6,"下载速度%.2fkb/s",dn_sp);
else
mvwprintw(win,9,6,"下载速度%.2fmb/s",dn_sp/1024);

wattroff(win,COLOR_PAIR(2));
wrefresh(win);
wclear(win);
wattron(win,COLOR_PAIR(1));
box(win,0,0);
wattroff(win,COLOR_PAIR(1));
}

return0;
}
热点内容
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:572
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:931
安卓80如何识别存储卡权限 发布:2025-01-24 16:19:54 浏览:231
存储介质价格 发布:2025-01-24 16:19:18 浏览:150
删除多个表sql 发布:2025-01-24 16:10:57 浏览:595
安卓设备版本哪里看 发布:2025-01-24 16:06:00 浏览:549
编译错误参数不可选 发布:2025-01-24 16:00:51 浏览:289
仓储软件用什么服务器 发布:2025-01-24 16:00:03 浏览:626
android协议分析 发布:2025-01-24 15:58:41 浏览:320
电脑配置512显卡有什么用 发布:2025-01-24 15:54:10 浏览:604