[root@localhost ~]# cat /var/log/secure | grep -i "failed" | grep "^Jun" | awk '{print$(NF-3)}' | sort | uniq -c | sort -n
3 123.144.25.184
5 157.230.90.57
5 68.183.214.223
62 165.22.124.40
1071 164.92.240.145
7096 68.183.66.210
#查看/var/log/secure 过滤其中带有错误密码的所有行
# grep -i 参数 意为不区分大小写
# grep "^Jun" 参数 意为过滤出以Jun开头的所以行(可以根据月份来进行调整;也可以去除查看整年)
# awk '{print$(NF-3)}' NF是指最后一列 "NF-3"为倒数第四列 用于提取IP地址
# uniq -c: "uniq" 去掉重复的数据 "uniq -c" 去掉重复的数据并统计重复出现的次数
# sort 排序 sort -n 正序 sort -nr 倒序
#也使用grep扩展匹配来获取IP地址
#grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"
#grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
#-o 只输出匹配的内容
[root@localhost ~]# cat /var/log/secure | grep -i "failed" | grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | sort | uniq -c | sort -nr
7906 68.183.66.210
5371 2.56.59.58
4626 142.93.110.120
1074 164.92.240.145
1023 159.223.27.112
785 157.230.27.203
755 142.93.103.151
76 165.22.124.40
6 123.145.16.233
5 68.183.32.11
5 157.230.90.57
5 143.244.175.81
2 123.145.1.126
2 123.144.25.184
[root@localhost ~]# cat /var/log/secure | grep -i "failed" | grep "^Jun" | awk '{print$(NF-3)}' | sort | uniq -c | sort -n | awk '$1>10{print $2}'
165.22.124.40
164.92.240.145
68.183.66.210
# awk '$1>10{print $2}' 提取出错误大于10次的IP地址
# $1>10 如果第一列的数字大于10
# print $2 就打印出第二列的IP