mysql 监听 udp_通用TCP、UDP服务监控脚本
技术原理:
本次服务监控采用较为简洁且通用的方法,主要是利用了nmap的扫描技术。针对TCP服务,采用半开扫描技术来探测指定的TCP端口是否可达;针对UDP服务,仅采用普通UDP端口扫描技术来探测指定的UDP端口是否可达。以此来判断相应的服务是否正常。
相关工具:
# yum -y install nmap
监控脚本:
#!/bin/sh
#============================================================================================
# 通用TCP、UDP服务监控,且服务异常时自动拉起服务
#
# 前提条件:
# 服务启动采用标准的系统启动脚本【service 服务名 (start|stop|restart|reload|...)】
#
#============================================================================================
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
[[ $# -ne 3 ]] && echo "$0 端口号 协议类型 服务名" && exit 1
SRV_PORT=$1 ##端口号
SRV_PROT=$2 ##协议类型
SRV_NAME=$3 ##服务名
## 是否已正确扫描
SCAN_FLAG=0
ETH1_ADDR=`/sbin/ifconfig eth1 | awk -F ':' '/inet addr/{print $2}' | sed 's/[a-zA-Z ]//g'`
TMP_SRV_PROT=`echo ${SRV_PROT} | tr '[A-Z]' '[a-z]'`
if [[ "${TMP_SRV_PROT}" == "tcp" ]]; then
PROT_OPT="S"
elif [[ "${TMP_SRV_PROT}" == "udp" ]]; then
PROT_OPT="U"
else
echo "未知的协议类型!" && exit 1
fi
## 最多扫描3次,成功一次即可,以避免网络抖动而导致误判
for ((i=0; i<3; i++)); do
RETVAL=`/usr/bin/nmap -n -s${PROT_OPT} -p ${SRV_PORT} ${ETH1_ADDR} | grep open`
[[ -n "${RETVAL}" ]] && SCAN_FLAG=1;break || sleep 10
done
if [[ ${SCAN_FLAG} -ne 1 ]]; then
TMP_SRV_NAME=`echo ${SRV_NAME} | tr '[A-Z]' '[a-z]'`
[[ ! -f /etc/init.d/${TMP_SRV_NAME} ]] && TMP_SRV_NAME="${TMP_SRV_NAME}d"
/sbin/service ${TMP_SRV_NAME} restart >/dev/null 2>&1
fi
#============================================================================================
##The End
使用样例(crontab信息):
*/2 * * * * /usr/local/haproxy/sbin/check_service.sh 80 tcp HAProxy >/dev/null 2>&1
mysql 监听 udp_通用TCP、UDP服务监控脚本相关推荐
- mysql 监听tcp6_切换MySQL以监听TCP
mysql 监听tcp6 By default, MySQL only allows connections from the localhost address. The configuration ...
- oracle 启动 linux监听,Linux下启动Oracle服务和监听程序
$ su – oracle $ sqlplus / nolog sql> conn / as sysdba sql> startup #启动Oracle,需 ...
- mysql监听串口_tcp与串口透传(select)
介绍 tcp作为服务端,监听端口8888,实现串口透传,这里是使用select监听tcp的receive和串口的read,单工通信 -p 指定tcp端口 -s 指定串口 -b 指定波特率 支持4800 ...
- 如何修改MySQL监听IP地址
Mysql默认在本地环路地址127.0.0.1的3306端口监听,要使用其它IP地址需要修改配置文件. 1.编辑 vi /etc/mysql/mysql.conf.d/mysqld.cnf (ubun ...
- windows mysql 监听地址_MYSQL地址监听问题
你的位置: 问答吧 -> 服务器 -> 问题详情 MYSQL地址监听问题 RedHat 9 系统 在论坛里找了很久发现通过改/etc/init.d/mysqld这个文件里的 $bindir ...
- 全网最详细、最简单 canal同步mysql 监听单实例、监听多实例 配置
修改涉及的文件 deployer /conf/canal.properties /conf/example/instance.properties canal-adapter /conf/applic ...
- mysql监听地址的设定 —— 解决外部网址无法连接mysql的办法服务器
今天在进行X项目转移时发现新服务器无法连接旧服务器的mysql. 经过确认,mysql的账号密码以及连接主机设置是没有问题的. 于是在旧服务器上查看了端口绑定状态,如图 3306端口只监听了本地loc ...
- python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...
# encoding=utf-8 import json import sys # 调用AcsClient参数进行身份验证 from aliyunsdkcore.client import AcsCl ...
- T-Pot平台Honeytrap蜜罐TCP/UDP服务攻击探测及实现自动化邮件告警
T-pot平台的Honeytrap可观察针对TCP或UDP服务的攻击,作为一个守护程序模拟一些知名的服务,并能够分析攻击字符串,执行相应的下载文件指令,当不产生TCP或者UDP协议的时候Honeytr ...
- python脚本如何监听终止进程行为,如何通过脚本名获取pid
文章目录 一.前言 二.最初的想法:直接获取脚本中的变量值 1.获取运行中py脚本的变量值 2.换一种方式 3.为什么不能获取脚本中的变量 4.下下策,使用使用python的gdb调试工具 三.pyt ...
最新文章
- springboot整合Quartz实现动态配置定时任务
- 数据结构——算法之(010)( 字符串的左旋转操作)
- Windows10看视频出现蓝屏重启
- Linux服务器运行sh文件提示权限不够解决方法?飞腾服务器Permission denied问题授权方法
- gulp与grunt对比
- 如何关闭父窗体?C#
- SpringSecurity常用登录认证方案
- 拥抱时序数据库,构筑IoT时代下智慧康养数据存储底座
- linux centos7.9图形界面版本下载_适合在任何地方使用的 Linux:15 个小型 Linux 发行版...
- jpushinterface.setalias的几个参数都是啥意思_很多电工老师傅都不知道,低压断路器基本参数,你懂几个?...
- Semantic Parsing on Freebase from Question-Answer Pairs【论文笔记】
- npm设置为淘宝镜像地址
- 支付宝存漏洞?这10招保护个人信息赶紧保存起来!
- NBMA网络中的OSPF实验(MGRE)
- 跟海外大牌正面PK,中国品牌如何出圈?
- 支付宝商家二维码收款、订单状态查询、退款API试用笔记
- 2017阿里实习生在线编程题
- 如何把新加的分区挂载到/根目录
- 企业营销获客为什么要选SEO?低预算适合做SEO吗?【必看】
- MySQL 8.0 OCP (1Z0-908)有中文考试了
热门文章
- numpy array
- ApiPost自动化测试基础之:接口参数依赖的情景处理...
- 阿里云发布ET奥运大脑,推进奥运进入数字时代
- Java多线程(六)线程池
- 【Error】:10061由于目标计算机积极拒绝,无法连接
- poj 1141 Brackets Sequence(线性dp)
- SOA的关键是什么?
- JavaScript 大整数相加后精度 如何解决
- jQuery整理您的笔记----jQuery开始
- CentOS6.4部署OpenStack Havana(Nova-Network版) (上)