
[root@znix test]# head -1 secure-20161219 access.log ==> secure-20161219 <== Dec 11 03:49:25 localhost sshd[27087]: Failed password for invalid user support from 123.31.34.190 port 55493 ssh2 ==> access.log <== 101.226.61.184 - - [22/Nov/2015:11:02:00 +0800] "GET /mobile/sea-modules/gallery/zepto/1.1.3/zepto.js HTTP/1.1" 200 24662 "http://m.oldboyedu.com.cn/mobile/theme/oldboy/home/index.html" "Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; HUAWEI CRR-UL00 Build/HUAWEICRR-UL00) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025478 Mobile Safari/533.1 MicroMessenger/6.3.7.51_rbb7fa12.660 NetType/3gnet Language/zh_CN"
失败是因为用户登录失败. 如果登录连续多次失败,则密码被强行使用.
/失败/关键字搜索
$(NF-3)表示倒数第四列
fa [$(NF-3)] ++使用数组来累积不同的IP类别
for(fa中的pol)for循环使用pol变量逐一提取fa [$(NF-3)]数组的内容.
print polawk数组排序,fa [pol]显示数组的内容和pol的数量,即统计信息.
[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t 218.65.30.126 17163 218.65.30.61 17163 125.16.71.175 4 169.46.38.74 9 183.136.238.78 30 218.2.0.16 10 122.228.238.66 1 ……
进行排序,将所有内容放在一起,uniq重复数据删除通常合并-c参数为count.
[root@znix test]# awk '/Failed/{print $(NF-3)}' secure-20161219 |sort|uniq -c|sort -n
[root@znix test]# awk '/Failed/{fa[$(NF-3)]++}END{for(pol in fa)print pol,fa[pol]}' secure-20161219|column -t|wc -l 88
使用数组来计数不同的IP
类似于第一个问题,只有统计信息的位置更改为$ 1.

[root@znix test]# awk '{hotel[$1]++}END{for(pol in hotel)print pol,hotel[pol]}' access.log |head -3 101.226.125.115 284 180.154.137.177 516 101.226.125.116 127
统计总数相对简单
i = i + $ 10可以写成i + = $ 10
i的累加,然后输出i的最后一个值.
[root@znix test]# awk '{i=i+$10}END{print i}' access.log 2478496663
统计ip使用的流量并分类每个ip. 与前一个问题不同,前一个问题是统计数字,这是统计他的点击量
hotel [$ 1] + = $ 10可以写成hotel [$ 1] = hotel [$ 1] + $ 10,这样循环的总和不是1,而是$ 10的数量,然后您可以使用每个IP流量.
[root@znix test]# awk '{hotel[$1]+=$10}END{for(pol in hotel)print pol,hotel[pol]}' access.log |sort -rnk2|head 114.83.184.139 31362956 117.136.66.10 22431302 116.216.30.47 21466000 223.104.5.197 21464856 116.216.0.60 19145329 114.141.164.180 17219553 114.111.166.22 17121524 223.104.5.202 16911512 116.228.21.187 15969887 112.64.171.98 15255013
查看数组元素的内容数组名称+数组元素下标
具有相同下标的数组可以一起使用.
两个相关的数组,只要有一个公共元素,就可以在循环中使用.
awk'{count [$ 1] ++; sum [$ 1] + = $ 10} END {for(pol in sum)print pol,count [pol],sum [pol]}'access.log
[root@znix test]# awk '{count[$1]++;sum[$1]=sum[$1]+$10}END{for(pol in sum)print pol,count[pol],sum[pol]}' access.log |sort -nrk2 |column -t |head 114.83.184.139 1982 31362956 117.136.66.10 1662 22431302 116.216.30.47 506 21466000 223.104.5.197 961 21464856 116.216.0.60 957 19145329 114.141.164.180 695 17219553 114.111.166.22 753 17121524 223.104.5.202 871 16911512 116.228.21.187 596 15969887 112.64.171.98 10856 15255013

[root@znix test]# awk '{count[$1]++;sum[$1]+=$10}END{for(pol in sum)print "ip:"pol,"次数:"count[pol],"流量:"sum[pol]}' access.log |sort -rnk3|head |column -t ip:70.39.157.199 次数:1 流量:16049 ip:70.39.157.198 次数:1 流量:15965 ip:70.39.157.195 次数:1 流量:1569 ip:68.180.230.250 次数:5 流量:40644 ip:66.249.82.96 次数:30 流量:40254 ip:66.249.82.93 次数:36 流量:358729 ip:66.249.82.90 次数:61 流量:1640266 ip:66.249.82.185 次数:1 流量:1569 ip:66.249.82.181 次数:3 流量:258284 ip:66.249.82.177 次数:6 流量:374716
对于数字awk数组排序,sort命令将其同等对待并按顺序对其进行排序
[root@znix test]# seq 20|sort 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9
-n表示将内容视为数字,并且可以按数字顺序排列
-r表示相反顺序
-k指定要排列的列顺序.
[root@znix test]# seq 20|sort -rnk1 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
如果现在有文本,格式如下:
a 1 b 3 c 2 d 7 b 5 a 3 g 2 f 6 d 9
也就是说,左边有随机字母,右边有随机数字. 需要编写脚本以使输出格式:
a 4 b 8 c 2 d 16 f 6 g 2
同一字母后面的数字加在一起并按字母顺序输出.
将对数组进行分类计数,显示时可以显示数据统计结果以及数组名称即结果.

[root@znix files]# awk '{a[$1]=a[$1]+$2}END{for(i in a)print i,a[i]}' w.txt a 4 b 8 c 2 d 16 f 6 g 2
在这里,变量被写为数组.
{i=i+$2}
{hotel[$1]=hotel[$1]+$2}
某些公式的缩写:
i++ ====>> i=i+1 i+=2 ====>> i=i+2 i+=$1 ====>> i=i+$1
在awk中使用它| “”在其中添加命令
sort命令将在后面排序,并且BEGIN的内容也将排序
awk周期中的排序不会影响您昂贵的BEGIN的内容
[root@znix test]# awk 'BEGIN{print "ip","count"}{count[$1]++}END{for(pol in count)print pol,count[pol]|"sort -rnk2"}' access.log |head |column -t ip count 58.220.223.62 12049 112.64.171.98 10856 114.83.184.139 1982 117.136.66.10 1662 115.29.245.13 1318 223.104.5.197 961 116.216.0.60 957 180.111.48.14 939 223.104.5.202 871
如何使用telnet [ip] [端口]
[f:\~]$ telnet 10.0.0.201 22 Connecting to 10.0.0.201:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. SSH-2.0-OpenSSH_5.3
[root@znix ~]# ss -lntup|grep 22 tcp LISTEN 0 128 :::22 :::* users:(("sshd",1140,4)) tcp LISTEN 0 128 *:22 *:* users:(("sshd",1140,3))
[root@znix test]# nmap -p22 10.0.0.201 Starting Nmap 5.51 ( http://nmap.org ) at 2017-09-22 11:10 CST Nmap scan report for 10.0.0.201 Host is up (0.000072s latency). PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.30 seconds

-i
[root@znix ~]# lsof -i:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1140 root 3u IPv4 10300 0t0 TCP *:ssh (LISTEN) sshd 1140 root 4u IPv6 10302 0t0 TCP *:ssh (LISTEN) sshd 1334 root 3u IPv4 11050 0t0 TCP 10.0.0.201:ssh->10.0.0.1:42256 (ESTABLISHED) sshd 1700 root 3u IPv4 12198 0t0 TCP 10.0.0.201:ssh->10.0.0.1:42772 (ESTABLISHED)
如何使用: nc ip端口
[root@znix ~]# nc 10.0.0.201 22 SSH-2.0-OpenSSH_5.3
[root@clsn6 ~]# yum install telnet tree lrzsz nmap nc dos2unix -y [root@clsn6 ~]# yum install htop iotop iftop atop nethogs -y
telnet远程连接服务,可以进行测试
树允许文件和目录以树的形式显示
lrzsz在linux和Windows之间相互传输文件
nmap强大的扫描工具
nc网络检测工具
dos2unix将dos格式的文本转换为unix格式
ip r与ip route相同
[root@znix test]# ip r 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.201 169.254.0.0/16 dev eth0 scope link metric 1002 default via 10.0.0.2 dev eth0
IP地址显示eth0与ip a s eth0相同.
[root@znix test]# ip address show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:a8:e4:14 brd ff:ff:ff:ff:ff:ff inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0 inet6 fe80::20c:29ff:fea8:e414/64 scope link valid_lft forever preferred_lft forever
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-189062-1.html
喝的没有毒