我如何才能从bash的mysql数据库中找到一个I列表?
我有一个名为nics的表,其中包含以下字段:
发布于 2018-08-12 13:40:14
下面是我如何构建我的监控应用程序(使用ICMP消息来检索活动主机的部分)。在我的例子中,mysql服务器(MariaDB)与应用程序运行在同一台机器上。
在这个cron中,我只使用两个字段(ipv4和icmp)。icmp字段用于确定是否应该对此nics进行监视。
下面是脚本:
#!/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。因为它有很多特点。
https://askubuntu.com/questions/1064660
复制相似问题