首页 > 其他分享 >keepalived 发生异常进行主备切换的notify.sh脚本

keepalived 发生异常进行主备切换的notify.sh脚本

时间:2023-05-09 17:11:06浏览次数:30  
标签:ip keepalived echo host sh awk notify print

notify.sh

#!/bin/sh
#########DESC##########
#keepalive切换告警提示#
#######################

## 配置文件和手机号码配置
config_file="/etc/keepalived/hostinfo.cfg"
alert_user_file="/etc/keepalived/alert_user.cfg"
keepalive_config_file="/etc/keepalived/keepalived.conf"
df_network_name=`grep -v '#' ${keepalive_config_file} | grep 'interface' | awk -F" " '{print $2}'`
phone="188****1234"
alert_url="http://192.168.10.101:10165/mcoms/clogin.do?method=sendMsgDailyAsForm&"

## 获取对应配置value信息
GetValueInfo() {
    project_name=`echo ${basic_info} | cut -d '[' -f 2 | cut -d ']' -f 1`
    vip=`echo ${basic_info} | awk -F 'vip=' '{print $2}' | cut -d ' ' -f 1`
    master_host=`echo ${basic_info} | awk -F 'master=' '{print $2}' | cut -d ' ' -f 1`
    backup_host=`echo ${basic_info} | awk -F 'backup=' '{print $2}' | cut -d ' ' -f 1`
}

## 获取本机IP对应配置文件中的配置信息
GetConfigInfo() {
    host_ip=`ip a |grep -E "brd.*${df_network_name}" |awk '{print $2}' |awk -F '/' '{print $1}'`
    host_count=`grep -w ${host_ip} ${config_file} | wc -l`
    if [[ ${host_count} -eq 0 ]];then
        warningbody="【客户端】${host_ip}: 主机信息未添加"
    elif [[ ${host_count} -gt 1 ]];then
        warningbody="【客户端】${host_ip}: 主机信息存在重复"
    else
        #basic_info=`awk -vRS="[" '/'''${host_ip}'''/{print RT$0}' ${config_file} | grep -v "^$"`
        basic_info=`grep -C 3 -w "${host_ip}" ${config_file} | awk -vRS="[" '/'''${host_ip}'''/{print RT$0}' | grep -v "^$"`
        GetValueInfo
    fi
}

## 发送告警信息
SendMsgAlert() {
    curl -i --data "receivers=${phone}&msgContent=${warningbody}"  "$alert_url"
}

## keepalive告警
notify() {
    GetConfigInfo
    if [ "${warningbody}" != "" ]; then
        SendMsgAlert
#        echo "error" >> /tmp/keepalive_output.txt
        exit
    else
        warningbody="【客户端】【${project_name}】_RS:${host_ip}_vip:${vip} ChangeTo $1"
#        echo ${warningbody} >> /tmp/keepalive_output.txt
        SendMsgAlert
    fi
}


case "$1" in
    master)
        notify master
        exit 0
    ;;
    backup)
        notify backup
        exit 0
    ;;
    fault)
        notify fault
        exit 0
    ;;
    stop)
        notify stop
        exit 0
    ;;
    *)
        echo 'Usage: `basename $0` {master|backup|fault|stop}'
        exit 1
    ;;
esac

hostinfo.cfg

[ha_sftp]
vip=192.168.10.188
master=192.168.10.101
backup=192.168.10.102

标签:ip,keepalived,echo,host,sh,awk,notify,print
From: https://www.cnblogs.com/whiteY/p/17385658.html

相关文章

  • CSharp 超大文件上传和断点续传的实现
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • linux|Windows|Xshell——Windows远程连接Linux服务器进行上传、下载文件,用远程登录工
    Windows远程连接Linux服务器进行操作时总会需要上传、下载文件。要实现这个目的,既可以通过FTP的方式,也可以在本地终端使用scp命令。但如果是使用Xshell等工具操作服务器的话,最简单的方法就是其自带支持的sz、rz命令了。这两个命令可以直接上传、下载文件,并自动弹出文件选择框,操作......
  • 使用 shell 脚本自动申请进京证 (六环外) —— debug 过程
    问题现象用shell脚本写了一个自动办理六环外进京证的工具《使用shell脚本自动申请进京证(六环外)》,然而运行这个脚本总是返回以下错误信息:{"msg":"目前办理业务人数较多,请稍后再试。","code":500}咨询woodheader/jjz项目的作者,了解到问题就是出在请求头或参数......
  • Unity Shader Toggle KeywordEnum Enum 使用
    Shader"Unlit/Custom/Shader05"{Properties{_MainTex("MainTex",2D)="white"{}[Toggle]_INVERT("Invertcolor?",Float)=0//_INVERT必须是大写的_Invert不可以[KeywordEnum(None,Add,M......
  • Git配置SSH Key
     最近看到很多人在配置Git时,遇到很问题,网上教程千篇一律。这儿自己单独记录一份。Git配置SSHKey1.检查本机是否有sshkey设置,切换到.ssh目录$cd~/.ssh或cd.ssh2.配置git用户名和邮箱,配置多个用户时添加--add参数$gitconfig--global--adduser.na......
  • 达梦数据库使用ShardingSphere
     ShardingSphere只支持主流数据库,国产的数据库并不支持,就比如达梦数据库,所以我们自己扩展。1.下载shardingsphere源码下载地址:https://github.com/apache/shardingsphere进入网址后,选择自己使用的Tags分支,并下载代码。我使用的版本是4.0.0-RC2再下载代码,......
  • xshell7 免费版 关闭 弹窗问题解决
    原博客地址:https://www.hao.kim/1175.html使用二进制编辑器winhex进行编辑绿色版下载地址:https://mikemhm.lanzoul.com/i6boy0v2a6pa使用winhex打开xshell.exe文件xshell.exe默认目录"C:\ProgramFiles(x86)\NetSarang\Xshell7\Xshell.exe"查找16进制数值74116A006A0......
  • Lenovo m93 mini 电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)硬件型号驱动情况主板Lenovom93mini处理器[email protected](35w)4-core/4-thread已驱动内存8GB(2x4)DDR31600MHz已驱动硬盘2.5"SSDSamsung860EVO500GB已驱动显卡IntelHDGraphics4000已驱动声......
  • ssh,socat端口转发
    ssh隧道我们将要研究的第一个协议是SSH,因为它已经内置了通过SSH隧道进行端口转发的功能。虽然SSH曾经是与Linux系统相关联的协议,但现在Windows默认安装了OpenSSH客户端,因此您可以期望在许多系统中找到它,而不受其操作系统的限制。SSH隧道可以以不同的方式用于通过SSH连接转发端口......
  • 服务器卡死,ssh连接不上-finalshell导致
    问题:客户反馈服务器ssh连接不上设备信息:AsianuxServerrelease7.3.1512(Lotus)定位:通过虚拟机控制台重启服务器,发现能登录虚拟机,查看服务器各种状态都正常。客户使用一段时间后又卡死,ssh连接不上,登录发现进程数有一万多个,导致内存不足,服务器卡断查看进程发现很多bash指令一直......