天天看點

檢視目前nat連接配接數的腳本

檢視目前nat連接配接數的腳本

今天在CU搜尋文章的時候,看到一個統計nat連接配接數的腳本

原腳本每次運作的時候隻是把目前的所有連接配接顯示出來

自己對腳本進行了改進

#!/bin/bash 

case "$1" in

#case語句表示設定程式運作的參數,$1表示第一個參數

-t) 

#while : 

echo "Input ctrl+c to Quit" 

#do

#while : 這是一個永遠的循環,因為後面的條件省略了,看我同僚寫的

while [ "1" -eq "1" ] 也可以。(廢話,1當然永遠等于1了)

cat -n /proc/net/ip_conntrack |grep tcp |awk '{print $5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$11}'> temp.log 

#從/proc/net/ip_conntrack去拿我們想要的資料

m=1 

for i in `cat temp.log|awk '{print $6}'| sed 's/bytes=//'` 

do 

if (( $i/1024 > 100 )) 

then 

size=`expr $i / 1024` 

#sed -n "${m}p" temp.log | awk '{print $1,$2,$3,$4,$5}' | sed "a\kbytes=${size}k"

sed -n "${m}p" temp.log | sed "s/bytes.*/&\tkbytes=${size}k/"

fi 

((m++)) 

done 

#這個for循環上一篇文章介紹過了。這裡要處理的是bytes=XXXXX這一列的内容,取出來進行比較。m這個變量表示目前行,循環第一次就是第一行,依次類推,取出目前行的内容後再次進行處理,在bytes的結尾添加kbytes=xxxk,這樣直覺。(m++))表示變量自增,開始我用的是C的文法,m=m+1,結果不對。

echo 

sun= cat /proc/net/ip_conntrack|grep -c src 

#sleep 10 

#done 

;; 

-u) 

cat -n /proc/net/ip_conntrack |grep udp |awk '{print $2"\t"$5"\t"$6"\t"$7"\t"$8"\t"$10}'|more 

-a) 

cat -n /proc/net/ip_conntrack |grep tcp |awk '{print $2"\t"$5"\t"$6"\t"$7"\t"$8"\t"$9"\t"$11}'|more 

*) 

echo "Usage {-t Tcp | -u Udp }" 

echo "Changed By coolerfeng at 2008.4.20"

exit 1 

esac 

exit 0 

#最後的這個*)表示當直接運作這個shell的時候顯示一個提示。告訴使用者的用法,很多程式都是這樣做的。

把紅色行的注釋符号去掉則可以10s重新整理一次,按Ctrl+c可以退出。

隻把大于100k的包顯示出來,呵呵,現在可以知道誰在下載下傳東西了。小樣的。kill you。哈哈

隻修改了關于tcp的部分,其他部分未修改

試圖實作按Q退出程式。暫時還不知道如何弄。另有一個想法就是對大于多少K的資料彩色顯示。或者高亮。這樣更容易看。

回家吃飯了。剩餘功能來日再完成之。