#!/bin/bash
# 1、获取canal实例在zookeeper中的cursor
# 2、修改canal实例的配置[canal.instance.master.timestamp]为zookeeper中的timestamp
# 3、删除canal实例在zookeeper中[/otter/canal/destinations]下的节点
# 需要手动停止、启动canal
# 需要手动停止、启动canal
# 需要手动停止、启动canal
# zookeeper节点名称和脚本全路径
zk_hostname="cdh6"
zkCli_path="/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/zookeeper/bin/zkCli.sh"
echo "开始设置canal初始时间戳..."
echo ""
echo ""
path=/opt/canal/conf
dirs=$(ls $path)
canal_zk_node="/otter/canal/destinations/"
ignore_arr=(canal.properties logback.xml metrics spring)
for instance in $dirs
do
if ! echo "${ignore_arr[@]}" | grep -w $instance &> /dev/null; then
echo "获取实例 $instance 的时间戳..."
cursor=`$zkCli_path -server $zk_hostname:2181 -e get $canal_zk_node$instance/1001/cursor`
echo ""
echo ""
ts=`echo $cursor | grep -Po '(?<="timestamp":)[0-9]*&
使用shell读取zookeeper中canal实例的时间戳修改canal配置
最新推荐文章于 2023-04-11 10:51:39 发布