當前位置:首頁 » 編程軟體 » 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;
}
熱點內容
演算法實驗分析 發布:2025-01-24 13:20:25 瀏覽:135
安卓和ios步數哪個准確 發布:2025-01-24 13:12:13 瀏覽:290
怎麼給電腦換配置 發布:2025-01-24 13:04:04 瀏覽:920
如何修改服務密碼10086 發布:2025-01-24 12:44:27 瀏覽:512
dosftp連接 發布:2025-01-24 12:35:56 瀏覽:803
編程來炒股 發布:2025-01-24 12:35:14 瀏覽:855
python正則中括弧 發布:2025-01-24 12:32:08 瀏覽:585
配置排列用英語怎麼說 發布:2025-01-24 12:32:00 瀏覽:608
led流水燈c語言程序 發布:2025-01-24 12:28:15 瀏覽:47
蘋果平板鎖屏密碼在哪裡 發布:2025-01-24 12:16:41 瀏覽:958