Linux BASH命令统计在线设备数量

需要统计某个设备在线的数量,原始数据如下图,打算按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统计总行数

Tags

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。