首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash来ping mysql的多个IP?

使用bash来ping mysql的多个IP?
EN

Ask Ubuntu用户
提问于 2018-08-12 13:32:36
回答 1查看 1.5K关注 0票数 1

我如何才能从bash的mysql数据库中找到一个I列表?

我有一个名为nics的表,其中包含以下字段:

  • id
  • user_id
  • machine_id
  • mac
  • ipv4
  • ipv6
  • dns
  • icmp =>用作二进制(0=disable,1=enable)。这将告诉脚本它是否应该平ip。
  • 已创建
  • 已修改
EN

回答 1

Ask Ubuntu用户

发布于 2018-08-12 13:40:14

下面是我如何构建我的监控应用程序(使用ICMP消息来检索活动主机的部分)。在我的例子中,mysql服务器(MariaDB)与应用程序运行在同一台机器上。

在这个cron中,我只使用两个字段(ipv4和icmp)。icmp字段用于确定是否应该对此nics进行监视。

下面是脚本:

代码语言:javascript
复制
#!/bin/bash

#variables

SQL_U=username
SQL_P=password
SQL_D=database

mysql -u ${SQL_U} -p${SQL_P} -D ${SQL_D} -e "SELECT ipv4 FROM nics WHERE icmp=1;" | while IFS=所有结果都插入到一个名为ping的表中。在其中插入ip,ping结果为二进制(0=loss,1=received),创建和修改日期。有了这个脚本,我可以每5分钟监控大约100个ips,并收集statistic.Bare,记住我使用的是fping而不是debian拉伸机上的ping。因为它有很多特点。\t' read ipv4; 
do 
    if [ "$ipv4" != "ipv4" ]; then
        PING_IP=$ipv4
        PING_LOSS=0
        PING_TEST=$(fping -c 1 -p 20 ${PING_IP} | awk '{ print $1 }')
        if [ "$PING_TEST" = "$PING_IP" ]; then
            PING_LOSS=1
        fi
        PING_C=$(date +"%Y-%m-%d %H:%M:%S")

        mysql -u ${SQL_U} -p${SQL_P} -D ${SQL_D} -e "INSERT INTO ping (ipv4, loss, created, modified) VALUES ('${PING_IP}', '${PING_LOSS}', '${PING_C}', '${PING_C}');"
    fi
done

所有结果都插入到一个名为ping的表中。在其中插入ip,ping结果为二进制(0=loss,1=received),创建和修改日期。有了这个脚本,我可以每5分钟监控大约100个ips,并收集statistic.Bare,记住我使用的是fping而不是debian拉伸机上的ping。因为它有很多特点。

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

https://askubuntu.com/questions/1064660

复制
相关文章

相似问题

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