首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shell脚本监控具有相同IP的多个连接

问shell脚本监控具有相同IP的多个连接
EN

Stack Overflow用户
提问于 2017-10-04 12:25:36
回答 1查看 116关注 0票数 0

我正在尝试监控进入Linux服务器的连接,这些连接具有连接到相同端口的相同IP。是否可以对不存在2次的特定ip地址进行监控才报警?

示例:

netstat -an |grep 000

代码语言:javascript
复制
101.101.101.101:2000        ESTABLISHED
101.101.101.101:2000        ESTABLISHED
101.101.101.102:3000        ESTABLISHED
101.101.101.102:3000        ESTABLISHED

我想提醒一下,如果101.101.101.101或101.101.102在不考虑端口的情况下各退出2次。

我的脚本:

代码语言:javascript
复制
connections=('101.101.101.101' '101.101.101.102')
running=( $(netstat -an |grep 000 |awk '{print $1}') )
non_running=()
for process_name in ${connections[@]}; do
    if [[ "${running[*]}" == *$process_name* ]]; then
        echo "$process_name is running"
    else
        echo "$process_name is not running"
    fi
done
EN

回答 1

Stack Overflow用户

发布于 2017-10-04 12:49:59

下面的脚本可以帮助你做同样的事情。

代码语言:javascript
复制
netstat -an | awk -v s1="\"" '
function check(ip,count,email_id){
  if(count<2){
    system("echo " s1 "IP " ip " 2 count not found." s1 " |  mailx -s " s1 " Alert email IP " ip " 2 times occurence not found." s1 FS email_id)
}
  else{
    print ip " is running fine."}
}
/101.101.101.101/{
  count1++
}
/101.101.101.102/{
  count2++
}
END{
  check(101.101.101.101,count1,"test@chumma.com");
  check(101.101.101.102,count2,"test@chumma.com")
}
' 

解释:,因此它将运行命令netstat -an,并将其标准输出作为awk命令的标准输入。在awk命令中,如果你看到我创建了一个名为check的function,所以你可以为任何IP调用它(我们必须在读取标准输入时检查它的计数),在awk的END块中,你可以调用这个函数,并将属性传递给它eg--> check(IP,count_variable,your_email_where_you_want_to_alert)。如果一切正常(意味着变量计数大于或等于2,如果您只想要计数2,则将我代码的条件更改为count==2上面的函数),否则它将发送电子邮件到您将提供给函数的id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46556994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档