查询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}}'