keepalived踩坑记录

devtools/2024/12/25 20:12:46/

环境

操作系统: CentOS7.9
keepalived: 1.35

master配置

cat > /etc/keepalived/keepalived.conf<<'EOF'
global_defs {router_id Nginx1
}
vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 3weight -3
}
vrrp_instance VI_1 {state MASTERinterface enp0s8 virtual_router_id 101priority 120advert_int 2nopreemptauthentication {auth_type PASSauth_pass 12333}virtual_ipaddress {192.168.240.6}track_script {chk_nginx }
}EOF
cat > /etc/keepalived/check_nginx.sh<<'EOF'
B=$(pgrep nginx | wc -l)
if [[ $B -eq 0 ]]; then/usr/bin/systemctl stop keepalivedexit 1
fi
exit 0EOF

backup配置

cat > /etc/keepalived/keepalived.conf<<'EOF'
global_defs {router_id Nginx2
}
vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 3weight -3
}
vrrp_instance VI_1 {state BACKUPinterface enp0s8 virtual_router_id 101priority 119advert_int 2nopreemptauthentication {auth_type PASSauth_pass 12333}virtual_ipaddress {192.168.240.6}track_script {chk_nginx}
}EOF
cat > /etc/keepalived/check_nginx.sh<<'EOF'
B=$(pgrep nginx | wc -l)
if [[ $B -eq 0 ]]; then/usr/bin/systemctl stop keepalivedexit 1
fi
exit 0EOF

说明

在这里插入图片描述

坑点

  1. 检测脚本/etc/keepalived/check_nginx.sh第一行一定不要写#!/bin/bash
  2. 检测脚本/etc/keepalived/check_nginx.sh的退出状态码不起作用,所以只能/usr/bin/systemctl stop keepalived

排错参考文档

【Linux】详解shell中source、sh、bash、./执行脚本的区别


http://www.ppmy.cn/devtools/145353.html

相关文章

电子电器架构 ---证书认证需求及CANoe验证脚本

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

[react] <NavLink>自带激活属性

NavLink v6.28.0 | React Router 点谁谁就带上类名 当然类名也是可以自定义 <NavLinkto{item.link}className{({ isActive }) > (isActive ? 测试 : )}>{item.title}</NavLink> 有什么用?他会监听你的路由,刷新的话也会带上激活效果

【微信小程序】页面跳转基础 | 我的咖啡店-综合实训

页面跳转基础 引言 在微信小程序开发中&#xff0c;页面跳转和参数传递是常见的需求。本文将通过一个实际案例——“我的咖啡店”小程序&#xff0c;详细介绍如何在微信小程序中实现页面跳转和参数传递。 页面跳转基础 在微信小程序中&#xff0c;页面跳转主要通过wx.navigat…

GESP CCF C++五级编程等级考试认证真题 2024年12月

GESP CCF C五级编程等级考试认证真题 202412 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 下面关于链表和数组的描述&#xff0c;错误的是&#xff08; &#xff09;。 A. 当数据数量不确定时&#xff0c;为了应对各种可能的情况&#xff0c;需要申…

Ubuntu安装教程+网页部署于服务器(前端+后端+mysql数据库)新版

Ubuntu安装配置教程 1、Ubuntu安装教程 1.1、下载Ubuntu 教程&#xff1a;https://blog.csdn.net/weixin_73404807/article/details/132296815?ops_request_misc&request_id&biz_id102&utm_termubuntu-20.04.6-desktop&utm_mediumdistribute.pc_search_res…

Visual Studio 、 MSBuild 、 Roslyn 、 .NET Runtime、SDK Tools之间的关系

1. Visual Studio Visual Studio 是一个集成开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供代码编写、调试、测试和发布等功能。它内置了 MSBuild、Roslyn 和 SDK Tools&#xff0c;并提供图形化界面来方便开发者进行项目管理和构建。与其他组件的关系&#xf…

精通Redis

目录 1.NoSQL 非关系型数据库 2.Redis 3.Redis的java客户端 4.Jedis 4.1Jedis快速入门 4.2Jedis连接池及使用 5.SpringDataRedis和RedisTemplate 6.SpringDataRedis快速入门 7.RedisSerializer 1.NoSQL 非关系型数据库 基础篇-02.初始Redis-认识NoSQL_哔哩哔哩_bilib…

设计模式详解(十二):单例模式——Singleton

什么是单例模式 单例模式 (Singleton Pattern) 是一种常见的设计模式&#xff0c;用于确保一个类在整个应用程序运行期间只有一个实例&#xff0c;并提供全局访问点。 本文将详细介绍单例模式的定义、实现方式、优缺点&#xff0c;以及 Android 源码中的使用实例&#xff0c;…