linux netstat状态统计,linux 相关统计命令详解 netstat sort wc cut

本文详细介绍了如何使用Linux命令netstat、sort、wc和cut来统计服务器连接状态,特别是针对HTTP端口80的连接,并通过实例演示了如何统计访问IP及连接数量。同时讲解了这些命令的基本用法和组合使用,如netstat的-a、-t、-n选项,以及sort、wc、cut命令的参数含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询linux服务器有哪些IP在连接netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $4}'| sort| uniq -c|sort -n

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

看看第二条: netstat -ntu  查看连接在此服务器上的ip地址

awk 进行切分 取出 第5列

cut -d: f1   以冒号分割 取出第一列

sort 进行一个从小到大的排序

uniq -c   -c或--count 在每列旁边显示该行重复出现的次数。

sort -rn  按照连接倒序排序

head -n 10 取现10条

看一个命令解析:cat detail.log | grep 2019-03-28 |awk '{print $3}'|cut -d: -f2 | uniq -c | sort -r | head -n 10

[root@iz25vpndgurz weixin]# cat detail.log | grep 2019-03-28 |awk '{print $3}'|cut -d: -f2 | uniq -c | sort -r | head -n 10

9 123.116.211.221

7 123.116.211.221

5 123.116.211.221

4 123.116.211.221

3 178.255.215.82

3 106.38.84.66

2 66.249.75.154

2 66.249.75.152

2 66.249.69.40

2 66.249.69.40

[root@iz25vpndgurz weixin]# cat detail.log | grep 2019-03-28 |awk '{print $3}'|cut -d: -f2|uniq | wc -l

273

1、统计一下 web站点下有多少人访问

netstat -nat | grep :80 |wc -l

netstat命令篇

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。

-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名

-r 显示路由信息,路由表

-e 显示扩展信息,例如uid等

-s 按各个协议进行统计

-c 每隔一个固定时间,执行该netstat命令。

一般使用组合

-ntlp

-nat

-nt 显示关于tcp相关的任务

cut命令篇

分割字符串使用

-d: -f 1 -d后面是分隔符  -f 1 取出分割后的第一个字符还是第二个字符

-c num1-num2 从第num1个字符 取到num2 个字符

cut -c 1-3 取出1到第3个字符

[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}' | cut -c 1-3

172

172

172

172

172

172[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}' | cut -c 1-6

172.28

172.28

172.28

172.28

172.28

172.28

cut命令中 -d : -f 1 联用[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}'| cut -d : -f 1

172.28.66.194

172.28.66.194

172.28.66.194

172.28.66.194

172.28.66.194

172.28.66.194

这是取出第一个串

取出分割后的第二个字符:[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}'| cut -d : -f 2

22

22

22

22

22

22

以上就是cut 命令的使用了。

wc命令篇

-l 总共、共计[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}'| cut -d : -f 2

22

22

22

22

22

22

#共计有多少条信息 wc -l

[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}'| cut -d : -f 2 | wc -l

6

sort命令篇

https://www.cnblogs.com/51linux/archive/2012/05/23/2515299.htmlsort -u 去除重复行

sort -r 倒序排 ,本身是自然排序

sort  -t  分割符号指定

sort -n 按照数值的形式指定

sort -o 把结果输出到标准输出

[rocrocket@rocrocket programming]$ cat number.txt

1

3

5

2

4

[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt

[rocrocket@rocrocket programming]$ cat number.txt

5

4

3

2

1

sort -n 以数字方式排序

[rocrocket@rocrocket programming]$ cat number.txt

1

10

19

11

2

5

[rocrocket@rocrocket programming]$ sort number.txt

1

10

11

19

2

5

[rocrocket@rocrocket programming]$ sort -n number.txt

1

2

5

10

11

19

你有没有遇到过10比2小的情况。

我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了

sort -t  -k

[rocrocket@rocrocket programming]$ cat facebook.txt

banana:30:5.5

apple:10:2.5

pear:90:2.3

orange:20:3.4

幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

指定了间隔符之后,就可以用-k来指定列数了。

[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt

apple:10:2.5

orange:20:3.4

banana:30:5.5

pear:90:2.3

以上是sort命令

[root@localhost socket]# netstat -nt | grep :22 | awk '{print $4}'

172.28.66.194:22

172.28.66.194:22

172.28.66.194:22

172.28.66.194:22

172.28.66.194:22

172.28.66.194:22

统计连接ssh 的客户端有多少个:netstat -nt | grep :22 | awk '{print $4}' | awk -F : '{print $1}' | sort -u | wc -l

1

又是一条综合性的语句: sort 和 awk 都可以进行分割

但是有一些区别,就是 sort 可以分割后,直接拿到排序 。awk拿到的值只有一列。[root@localhost logs]# ps -ef | grep mysql | grep -v 'grep' | sort -r -k 2 -t ' '

mysql     6672  2127  0 Dec06 ?        00:00:28 /usr/local/mysql5.6/bin/mysqld --basedir=/usr/local/mysql5.6 --datadir=/usr/local/mysql5.6/data --plugin-dir=/usr/local/mysql5.6/lib/plugin --user=mysql --log-error=/usr/local/mysql5.6/data/localhost.localdomain.err --pid-file=/usr/local/mysql5.6/data/localhost.localdomain.pid

root      2127     1  1 Dec06 ?        00:16:13 /bin/sh /usr/local/mysql5.6/bin/mysqld_safe --datadir=/usr/local/mysql5.6/data --pid-file=/usr/local/mysql5.6/data/localhost.localdomain.pid

[root@localhost logs]# ps -ef | grep mysql | grep -v 'grep' | sort -r -k 2 -t ' ' | awk '{print $1 $2}'

mysql 6672

查看内存使用情况free -m

free -m | awk '{if(NR==2){print $3}}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值