Linux shell工具grep awk cut sort uniq sort 使用小結

531968912發表於2017-04-06

Linux 系統中,有很多用於快速處理資料的工具如grep awk cut sort uniq sort,他們非常非常地好用。 如果你熟練掌握他們的使用技巧,他們則可以幫你快速定位問題。

最近碰到一個案例。 一個專案上資料庫系統, ORACLE ,執行在 LINUX 上,報程式數滿了。看到這類問題,您不需要去深究什麼警告日誌,資料庫中程式狀況啊等等。馬上 在作業系統層面上看看有哪些伺服器連線到這臺資料庫伺服器上。

(牆內連結: http://mikixiyou.iteye.com/blog/1538828)

這裡使用的第一個工具就netstat 。他是系統管理工具,還不能算shell 工具。


透過netstat -ntu ,找出透過tcp 和udp 連線伺服器的IP 地址列表。

[root@webdb4 ~]# netstat -ntu|more     

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State     

tcp        0      0 192.168.15.209:1521         192.168.15.65:37781         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37783         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37777         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37779         ESTABLISHED

tcp        0      0 10.100.15.209:49895         10.100.15.207:26069         ESTABLISHED

tcp        0      0 10.100.15.209:49898         10.100.15.213:6092          ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37785         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.181:21869        ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.181:21870        ESTABLISHED

tcp        1      0 192.168.15.209:26781        192.168.15.89:1521          CLOSE_WAIT 

tcp        0      0 192.168.15.209:10332        192.168.15.211:6200         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.181:21875        ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37766         ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.181:21874        ESTABLISHED

tcp        0      0 192.168.15.209:1521         192.168.15.65:37761         ESTABLISHED

 

下面略掉,太多了,沒法顯示全。

 

這是所有與資料庫伺服器連線的外部IP 資訊列表。

 

可以看到第五列是所有的外部IP 資訊。根據這些資訊,找出數目那個IP 是什麼?或者根據IP數目做一個排序。

第一步,使用grep 將tcp 過濾出來,也可以使用egrep 過濾多個條件

netstat -ntu|grep 'tcp'

netstat -ntu|egrep 'tcp|udp'

 

第二步,使用awk 將第五列單獨截出來

netstat -ntu|grep 'tcp'|awk '{print $5}'

操作如下:

[root@webdb4 ~]# netstat -ntu|grep 'tcp'|awk '{print $5}'|more

192.168.15.65:37781

192.168.15.61:34281

192.168.15.65:37783

192.168.15.61:34282

192.168.15.65:37777

192.168.15.65:37779

10.100.15.207:26069

192.168.15.61:34275

10.100.15.213:6092

 

第三步,使用cut 將列資訊以":" 為分隔符再分成不同的列, 顯示第一個field

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1

 

第四步,使用sort 預設字元順序將欄位值排序

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort

sort 有很多選項,可以man sort 去看。

 

第五步,使用uniq 將已經排序好的欄位計算不同值的數目

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c

uniq -c 根據相近的值計算和,因此之前需要排序好。

 

第六步,使用sort -n 數字升序方式再排一下結果

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -n

使用sort -nr ,可以按照數字降序排。

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -nr

 

第七步,使用head 或tail 取頭部幾行或尾部幾行

取尾部10 行

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -n|tail -10

 

取頭部10 行

netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -nr|head -10

 

[root@webdb4 ~]# netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -n|tail -10

      8 192.168.15.133

      8 192.168.15.62

     10 192.168.15.181

     11 192.168.15.61

     12 192.168.15.204

     15 192.168.15.63

     17 192.168.15.100

     18 192.168.15.92

     30 192.168.15.65

     32 192.168.15.146

 

[root@webdb4 ~]# netstat -ntu|grep 'tcp'|awk '{print $5}'|cut -d: -f1|sort|uniq -c|sort -nr|head -10

     32 192.168.15.146

     30 192.168.15.65

     18 192.168.15.92

     17 192.168.15.100

     15 192.168.15.63

     12 192.168.15.204

     11 192.168.15.61

     10 192.168.15.181

      8 192.168.15.62

      8 192.168.15.133 

 

這就得到我們要的結果。

這個結果中,我們可以看出各個伺服器在資料庫伺服器上的網路連線數。

根據連線數,發現特別大的,肯定有問題。通常都應用服務端開啟連線不關閉,或者出現異常無法關閉

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2136762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章