Linux shell工具grep awk cut sort uniq sort 使用小結
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幾個常用的文字處理shell 命令:find、grep、sort、uniq、sed、awk
- Linux grep,sed,sort,uniq學習Linux
- linux sort,uniq,cut,wc命令詳解Linux
- Shell—擴充套件正規表示式(awk、sort、uniq、tr工具)套件
- Linux中sort,uniq,cut,wc命令詳解Linux
- 使用awk+sort+uniq進行文字分析
- 【Shell】【經驗】awk sed grep find sort常用配搭用法
- [Shell] 統計字串出現的次數和排序(cut,sort,uniq)字串排序
- Shell 常用字元處理命令cut/sort/wc/uniq/tee/tr/split字元
- sort-cut-wc詳解
- Linux Shell之sort命令(轉)Linux
- 《shell下sort排序命令的使用》排序
- 【Shell】sort 筆記筆記
- 希爾排序(Shell Sort)排序
- [shell基礎]——sort命令
- [Shell] Sort 和 對齊
- [Shell] Sort排序的例子排序
- shell 中 grep、sed、awk 命令
- Linux 文字處理工具(grep sed awk )Linux
- 【shell筆記>命令】grep,sed,awk筆記
- Shell字元操作命令——grep、sed、awk字元
- sort 命令使用
- Linux sort命令Linux
- js中sort總結JS
- 【Shell】sed xargs grep awk的組合用法
- linux三劍客(grep、sed、awk)基本使用Linux
- Linux基礎命令---sortLinux
- Linux基礎命令—sortLinux
- linux命令詳解:sortLinux
- Linux sort 命令詳解Linux
- Linux之sort命令使用入門詳解Linux
- SORT (UNIQUE STOPKEY)/ SORT GROUP BY STOPKEYTopK
- linux awk sed grep awk 求和平均最大最小Linux
- JavaScript sort()JavaScript
- 排序sort排序
- sort命令
- topo sort
- Queue Sort