一个伪linux粉丝的blog

  1. 首页
  2. unix/linux
  3. 正文

grep awk cut sort uniq sort

4 5 月, 2013 2370点热度 0人点赞 2条评论

转载自 http://mikixiyou.iteye.com/blog/1538828

以前用过netstat 和 awk等工具查看服务器当前的访问ip情况,懒得自己整理了,这里有篇现成的,转载吧,通过这个例子也可以掌握netstat、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

下面略掉,太多了,没法显示全。

这是所有与数据库服务器连接的外部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

这就得到我们要的结果。

这个结果中,我们可以看出各个服务器在数据库服务器上的网络连接数。

根据连接数,发现特别大的,肯定有问题。通常都应用服务端打开连接不关闭,或者出现异常无法关闭。

相关文章:

  1. Log analysis felt the power of ddos attack
  2. setup-vpn-on-vps
  3. Mtr(My traceroute) 使用简介
  4. Real Time Sync with Sersync
标签: shell
最后更新:24 12 月, 2013

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • 拨云剑

    好文拜读. blog.wanjie.info 好样的.
    国内谷歌总被墙,烦。发现个在线google代理,真不错。http://www.boyunjian.com/do/googlepx/index.html?fm=9001

    31 7 月, 2013
    回复
  • 零落千起

    谷歌浏览器表示...看你的网页排版全乱了,要截图不?

    21 8 月, 2013
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    回复 拨云剑 取消回复

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    归档
    分类
    • network / 332篇
    • Uncategorized / 116篇
    • unix/linux / 121篇
    • 业界资讯 / 38篇
    • 公司杂事 / 11篇
    • 数码影像 / 12篇
    • 美剧 / 3篇
    • 美图共赏 / 21篇
    • 英语学习 / 3篇
    标签聚合
    dreamhost空间 邮件归档 docker ldap d90 Nginx dreamhost jira ssh google-chrome wget Google Voice 泰国 天翼live k8s debian kubectl gitlab VPS 网站运营 Google kernel deepseek Ubuntu 浏览器 openssl nexus 虚拟主机 postgres squid

    COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang