haproxy服务使用usrsbinhaproxy -f $CONFIG -c -q 进行配置检查时当配置中使用bind 12341234指令且该主机上并没有1234地址时无法监听该1234端口时上述usrsbinhaproxy -f $CONFIG -c -q 命令返回状态码也是0请问如何解决这个问题?
该问题是由于/usr/sbin/haproxy -f $CONFIG -c -q命令返回状态码始终为0,无法区分配置检查是否成功的原因。可以通过以下方法解决这个问题:
- 使用
grep命令检查命令输出中是否包含关键字来判断配置检查是否成功。例如:
/usr/sbin/haproxy -f $CONFIG -c -q | grep -q "Configuration file is valid"
该命令会在配置检查成功时返回0,失败时返回非零值。
- 使用
-W参数来指定错误日志文件,并在/usr/sbin/haproxy -f $CONFIG -c -q命令执行后检查错误日志文件是否为空。例如:
/usr/sbin/haproxy -f $CONFIG -c -q -W /tmp/haproxy_error.log
if [ -s /tmp/haproxy_error.log ]; then
echo "Configuration check failed"
else
echo "Configuration check succeeded"
fi
该方法会将错误日志输出到/tmp/haproxy_error.log文件中,如果文件不为空,则表示配置检查失败。
使用以上方法可以根据实际情况判断配置检查是否成功,并进行相应的处理
原文地址: http://www.cveoy.top/t/topic/iU70 著作权归作者所有。请勿转载和采集!