我正在运行保持,以平衡虚拟I。
我编写了一个简单的脚本到检查是否设置了变量,如果是的话,“绕过”节点并将故障转移到“备份”节点E 211
。它从我能用正确的变量判断的东西中退出。
但是并没有看到显然看到了退出代码。我哪里出错了?脚本是从keepalived.conf
文件中运行的-是的,它被设置为可执行文件。如果我“破坏”了代码(有语法错误),它就会适当地失败。
#!/bin/bash
set -e
echo "$vrrpTVIPS"; #for testing purposes only
if [ "$vrrpTVIPS" != "bypass" ]; then
exit 0
else
exit 1
fi
应该发生的是,如果是vrrpTVIPS == bypass
,这个脚本应该与代码1一起退出(当我亲自运行它并检查我得到1
的echo $?
时它就是这样做的)。为什么保存的脚本没有看到这一点并采取相应的行动(它记录脚本退出代码,并且它没有退出状态1
的任何条目)?
我也尝试过倒车,但没有结果:
#!/bin/bash
set -e
echo "$vrrpTVIPS";
if [ "$vrrpTVIPS" == "bypass" ]; then
exit 1
else
exit 0
fi
添加信息:这是来自keepalived.conf
in /etc/keepalived/keepalived.conf
的相关信息
vrrp_script check_test_override {
script "/usr/sbin/chktest.sh"
internal 2
}
在文件后面的V实例配置中:
track_script {
check_test_override
}
发布于 2019-02-24 11:20:49
vrrp_script
采用一个rise
和/或fall
参数,以及设置OK/KO转换所需的错误或成功次数的weight
,以及根据此更改赋予多少优先级。
我认为这两者在默认情况下都是未定义的,所以您必须显式地定义它们。例如,要打开单个OK/failure退出代码,设置:
vrrp_script check_test_override {
script "/usr/sbin/chktest.sh"
interval 2
weight 2
rise 1
fall 1
}
https://stackoverflow.com/questions/54854780
复制相似问题