转载自 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)
[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 数目做一个排序。
netstat -ntu|grep 'tcp'
netstat -ntu|egrep 'tcp|udp'
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
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
这就得到我们要的结果。
文章评论
好文拜读. blog.wanjie.info 好样的.
国内谷歌总被墙,烦。发现个在线google代理,真不错。http://www.boyunjian.com/do/googlepx/index.html?fm=9001
谷歌浏览器表示...看你的网页排版全乱了,要截图不?