【问题标题】:shell script monitor mutiple connections with same IPshell脚本监控具有相同IP的多个连接
【发布时间】:2017-10-04 12:49:59
【问题描述】:

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

例子:

netstat -an |grep 000

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 次,无论端口如何,我想提醒一下。

我的脚本:

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

【问题讨论】:

    标签: linux shell netstat


    【解决方案1】:

    以下脚本可以帮助您。

    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 命令中,如果您看到我创建了一个名为checkfunction,因此您可以在@987654327 的END 块中为任何IP 调用它(我们必须在读取标准输入时检查它的计数) @你可以调用这个函数并传递给它的属性eg--&gt; check(IP,count_variable,your_email_where_you_want_to_alert)。如果一切正常,它应该打印(意味着该变量的计数大于或等于 2,如果您只想要计数 2,则将我的代码条件更改为 count==2 以上函数)否则它将发送电子邮件到您将提供给的 id函数。

    【讨论】:

    • 谢谢@RavinderSingh13 我采纳了你的建议,它的工作原理是,如果两个 IP 地址都已关闭,它只会在电子邮件警报中提醒其中一个。如果两者都关闭,我无法弄清楚如何提醒两者。另外,我应该补充一下,第一个 IP 应该存在 2 次,第二个 IP 应该存在 4 次。如果存在少于两个的 10.101.101.101 警报和少于 4 个的 10.101.101.102 警报,是否有一个简单的解决方案来发出警报?谢谢!!
    • @connollyc4,我提到count
    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多