linux下檢視當前網路流量
cat /proc/net/dev 透過這個檔案可以看到網路流量
[@more@]檢視主機流量,ok,以KB為單位,一個nohup命令讓他跑這麼幾天, 取出來分析便是。/proc/net/dev,就是分析狀態。
零、嘛是/proc/net/dev:
/proc的那些檔案的操作函式很特殊,不需要直接對/proc檔案的內容進行寫操作來新增內容,就能用充滿魔力的show函式來給使用者提供資訊。聽不懂,就當神話來聽,知道怎麼用這個東東就行。
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo:1219485788609 620698175 0 0 0 0 0 0
1219485788609 620698175 0 0 0 0 0 0
eth0:182025224125 332789797 0 0 0 0 0 1946
226393677809 315770454 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
tunl0:18186156911 209305063 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ok,你要用的就是第1,2,9,10列。
一、一般伺服器就一個網路卡,bash版的夠用了:
#! /bin/bash
while true
do
receive1=`cat /proc/net/dev|grep eth0 | awk '{print$1}'|sed -s 's/eth0://g'`
send1=`cat /proc/net/dev|grep eth0 | awk '{print$9}'`
sleep 300
receive2=`cat /proc/net/dev|grep eth0 | awk '{print$1}'|sed -s 's/eth0://g'`
receive_cnt=`expr $receive2 - $receive1`
receive_cnt=`expr $receive_cnt / 1024`
send2=`cat /proc/net/dev|grep eth0 | awk '{print$9}'`
send_cnt=`expr $send2 - $send1`
send_cnt=`expr $send_cnt / 1024`
echo `date` 'eth0 Receive Bytes:'$receive_cnt >>ok.txt
echo `date` 'eth0 Send Bytes:' $send_cnt >>ok.txt
done
二、如果你多網路卡,又想有個萬能指令碼,ok,老遊給你一個perl版本:
#!/usr/bin/perl
$count=0;
my $sec=60;
while(1){
my ($RX_bytes1,$TX_bytes1)=getnet();
sleep($sec);
my ($RX_bytes2,$TX_bytes2)=getnet();
my $net_RX_rate=int(($RX_bytes2-$RX_bytes1)/$sec);
my $net_TX_rate=int(($TX_bytes2-$TX_bytes1)/$sec);
my $net_rate=$net_RX_rate+$net_TX_rate;
my $localt=localtime();
$count++;
printlog("$countt$localtt$net_ratet$net_RX_ratet$net_TX_raten");
}
#-------------------------------------------------------------------------
sub getnet{
system("rm -fr net_use.tmp") if(-e "net_use.tmp");
system("cp /proc/net/dev net_use.tmp");
open(IN,"net_use.tmp")||die "$!";
my @array=
close IN;
system("rm -fr net_use.tmp");
my ($RX_bytes,$TX_bytes)=(0,0);
foreach my $line(@array){
if($line=~/ethd+:(.+)/){
my $tmp=$1;
my @array2=split(/s+/,$tmp);
$RX_bytes+=$array2[0];
$TX_bytes+=$array2[8];
}
}
return ($RX_bytes,$TX_bytes);
}
#-------------------------------------------------------------------------
sub printlog{
my $str=shift;
open(LOGOUT,">>net_stat.log");
print LOGOUT "$str";
close LOGOUT;
}
ref: http://51runaway.blog.163.com/blog/static/240286882009102665632660/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1057003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux檢視網路流量的指令碼Linux指令碼
- Linux檢視網路卡流量Linux
- Linux檢視當前目錄下的檔案大小Linux
- 檢視當前linux的核心版本(轉)Linux
- 如何檢視Linux 當前訪問ipLinux
- 如何檢視Windows8系統當前網路的完整網路對映Windows
- Linux 下檢視系統當前登入使用者資訊Linux
- Linux檢視環境變數當前資訊和檢視命令Linux變數
- 檢視oracle當前sessionOracleSession
- linux下使用nload檢視網路卡實時流量(zt)Linux
- 使用常見的網路命令檢視當前網路狀態——Mac OS X篇Mac
- Win8 檢視無線網路流量
- 檢視git當前版本號Git
- 檢視當前系統程式
- linux檢視 CPU,記憶體,網路流量和磁碟 I/OLinux記憶體
- 【轉】檢視Oracle當前使用者下的資訊Oracle
- Linux下用於檢視系統當前登入使用者資訊Linux
- 如何檢視區域網內電腦網路流量
- 檢視伺服器當前網路使用情況實用工具nload伺服器
- linux 檢視網路埠Linux
- Linux檢視和剔除當前登入使用者Linux
- linux下如何關閉防火牆?如何檢視防火牆當前的狀態Linux防火牆
- Android檢測網路狀態,判斷當前網路是否可用Android
- 檢視linux系統當前登陸的使用者Linux
- 在Linux中,如何檢視當前系統的版本資訊?Linux
- Centos下檢視當前目錄大小及檔案個數CentOS
- MySQL檢視當前資料庫庫MySql資料庫
- 檢視當前會話session id方法:會話Session
- linux 流量檢視工具 iftop 配置Linux
- 檢視當前pg會話連線數會話
- 檢視當前使用者正在等待事件事件
- 檢視當前windows使用的字符集Windows
- Windows 8.1系統下如何檢視當前顯示卡的視訊記憶體大小Windows記憶體
- Linux檢視網路卡流量方法的工具和命令彙總Linux
- Linux下用netstat檢視網路狀態、埠狀態Linux
- Linux下網路流量實時監控工具大全Linux
- linux下獲取程式當前目錄絕對路徑Linux
- Linux 檢視網路連線狀態Linux