需要统计某个设备在线的数量,原始数据如下图,打算按IP地址来统计,
Dec 11 14:54:03 iZj6ch8xqpu40Z sshd[24846]: Accepted publickey for gsb from 114.250.16.113 port 44024 ssh2: RSA SHA256:ycH1L7QP28MZ68lbPsjPslk2XBRPeXqIG3UT6RLK9r4
Dec 11 14:56:00 iZj6ch8xqpu40Z sshd[25252]: Accepted publickey for gsb from 39.188.44.15 port 34847 ssh2: RSA SHA256:rZ8LQh4TG6YKru67APhR/G5Q9blvFa+ZBy3Fp7TQoQw
Dec 11 14:56:01 iZj6ch8xqpu40Z sshd[25255]: Accepted publickey for gsb from 39.186.1.78 port 30981 ssh2: RSA SHA256:hh0Ijihmzx4J49q1uThf9xb9yUz2OO1aKmUEPXBqXSw
bash指令如下:
cat auth.log|grep "Accepted publickey"|awk '{print $11}'|sort|uniq|wc -l
- 第一步用grep找到包含Accepted的数据
- 用awk打印出IP地址
- sort排序
- uniq删除多余的,一个IP只留一个
- wc -l统计总行数
添加新评论