首页 > 系统相关 >linux VIP 自动切换虚拟IP

linux VIP 自动切换虚拟IP

时间:2024-05-10 10:33:59浏览次数:26  
标签:bin IP sudo 192.168 VIP usr linux DEVICE

脚本内容如下

#!/bin/bash
  
set -o xtrace
PGCANDIDATES=(192.168.0.92 192.168.0.93 192.168.0.94 192.168.0.95)
# HOSTNAME=`hostname -i`
VIP=192.168.0.110
GW=192.168.1.1
DEVICE=enp0s3
STEP1="Remove the VIP on all nodes"
STEP2="Check if vip still online"
STEP3="Promte primary DB"
STEP4="Add vip on new primary DB"
STEP5="Clear ARP Cache"


###step1. Remove the VIP on all nodes
for candidate in "${PGCANDIDATES[@]}"; do
echo $candidate
ssh -p '22' postgres@$candidate -tt  "
ip addr del $VIP/24 dev $DEVICE
exit
"
done

####clear arp cache
/usr/bin/sudo /sbin/arping -I $DEVICE  -b -c 5 $GW
#/usr/bin/sudo /sbin/arping -I $DEVICE -s $VIP -b -c 5 $GW

#/usr/bin/sudo /sbin/arping -I enp0s3 -s 192.168.0.92 -b -c 5 192.168.1.1
#/usr/bin/sudo /sbin/arping -I enp0s3 -b -c 5 192.168.1.1



###step2.Check if vip still online
/usr/bin/sudo  /usr/bin/ping -c1 -w1 -t5 ${VIP}
if [ $? -eq 0 ]; then
    echo repmgr_promote_command.sh: ${STEP2} : ${VIP} failed !!!  
    exit 1
fi


###step4.Add vip on new primary DB
/usr/bin/sudo /sbin/ip addr add $VIP/24 dev $DEVICE
if [ $? -ne 0 ]; then
    echo repmgr_promote_command.sh: ${STEP4} on ${HOSTNAME} failed !!!  
    exit 1
fi


####step5.Clear arp cache
/usr/bin/sudo /sbin/arping -I $DEVICE -s $VIP -b -c 3 $GW
if [ $? -ne 0 ]; then
    echo repmgr_promote_command.sh: ${STEP5} on ${HOSTNAME} failed !!!  
    exit 1
fi

标签:bin,IP,sudo,192.168,VIP,usr,linux,DEVICE
From: https://www.cnblogs.com/ives/p/18183764

相关文章

  • 6-监控类型_ZBX_JMX_SNMP_IPMI
    6.监控类型ZBXJMXSNMPIPMIZBX监控类型:*作用:ZBX监控类型是Zabbix自身的一种监控方式,它通过ZabbixAgent主动采集被监控设备的性能数据,并将数据发送给Zabbix服务器进行分析和显示。*特点:ZBX监控类型能够实时地、高效地监控主机,适用于需要精细控制和实时监控的情......
  • Qt使用QHttpMultiPart发送文件和检查本地程序版本号
    发送一个文件到指定的服务器地址QNetworkAccessManager*manager=newQNetworkAccessManager(this);QUrlurl("http://172.16.21.47:8889/financeContract/financeContractRecordDataImport");//替换为你的上传URL QNetworkRequestrequest(url);QHttpMultiPart*multiPar......
  • 在 Linux 中将可执行文件设为全局可用
    一、将可执行文件复制到/usr/local/bin/目录:sudocp<binary-name>/usr/local/bin/或生成链接:sudoln-s/absolute/path/to/binary/usr/local/bin/<binary-name>二、echo"exportPATH=/home/wzy/go/bin:$PATH">>~/.profile&&source~/.pr......
  • linux中离线安装docker
    一、linux中离线安装docker1、从官方下载Docker安装包并上传至虚拟机https://download.docker.com/linux/static/stable/x86_64/2.解压安装包tar-xvfdocker-19.03.9.tgz3.将解压出来的docker文件内容移动到/usr/bin/目录下#移动命令复制命令请用cpmvdocker/*/usr......
  • Linux问题--docker启动mysql时提示3306端口被占用(kill不掉3306端口)
    使用kill-9杀掉mysqld服务时一直失败。mysql启动时会启动mysqld和mysqld_safe两个进程,当使用kill-9杀掉mysqld进程时,mysqld_safe会自动重新启动mysqld。当使用正常方式退出mysqld时,mysqld_safe也会退出。如果需要kill掉mysqld服务可以先通过lsof-i:3306查询到占用3306......
  • linux增加环境变量示例
    首先,通过 vim~/.bashrc 命令进入我这个用户的.bashrc文件内 然后在这个文件末尾添加环境变量,比如下面红框中的内容表示添加了路径/home/nfs_new/wangpeng/VSCode-linux-x64/bin为环境变量,实际上这里是把vscode启动命令添加作为环境变量了。其中, $PATH 表示之前所有的环......
  • 洛谷 P1031 [NOIP2002 提高组] 均分纸牌 题解
    题目简述有$N$堆纸牌,编号分别为$1,2,\ldots,N$。每堆上有若干张,但纸牌总数必为$N$的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为$1$堆上取的纸牌,只能移到编号为$2$的堆上;在编号为$N$的堆上取的纸牌,只能移到编号为$N-1$的堆上;其他堆上取的纸牌,可......
  • linux openCV编译
    1、修改平台文件opencv/platforms/linux/arm-gnueabihf.toolchain.cmakeset(GCC_COMPILER_VERSION""CACHESTRING"GCCCompilerversion")set(GNU_MACHINE"arm-linux-gnueabihf"CACHESTRING"GNUcompilertriple")set(CMAKE_C_COMP......
  • Linux I2C子系统驱动
    1LinuxI2C驱动框架由上到下分为3层结构:i2c设备驱动层:作为client使用者使用i2c子系统。提供操作接口给应用层,与应用层交互数据。I2C核心层:提供transfersendrecv函数。把client设备挂载到I2C总线上;维护i2cdriver和i2cclient链表,实现i2c_client和i2c_driver匹配。......
  • 洛谷 P1012 [NOIP1998 提高组] 拼数 题解
    题目简述设有$n$个正整数$a_1\dotsa_n$,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。题目分析定义设$X$为数字$x$的字符串形式。$A+B$表示字符串$A$和字符串$B$相连组成的字符串。思路既然要构造最优解,显然如果有不优的情况的话,就需要对序列进行......