statistic.sh

#!/bin/bash
# 查看有多少远程的IP在连接本机(不管是通过ssh,还是web,还是ftp,都统计) 
# 使用netstat ‐antulp可以查看本机所有连接的状态,‐a查看所有,‐n数字格式显示,-t仅显示tcp连接的信息,-u仅显示udp连接的信息,-l显示监控中的服务器的套接字,-p显示正在使用套接字的程序识别码和程序名称
# Local Address(第四列是本机的IP和端口信息)
# Foreign Address(第五列是远程主机的IP和端口信息)
# 使用awk命令仅显示第5列数据,再显示第1列IP地址的信息
# sort可以按数字大小排序,最后使用uniq将多余重复的删除,并统计重复的次数

netstat -antulp | awk '{print $5}' | awk -F":" '{print $1}' | grep -Ev "and|Address|^$|0.0.0.0" |sort -nr |uniq -c

验证:

[root@logstash ~]# sh statistic.sh
      2 192.168.10.244
      1 192.168.10.1
[root@logstash ~]#