blob: 2b323e8b21d3d0a6b225abd5a10e5f749827c442 [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ -z "$ROCKETMQ_HOME" ]; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ]; do
ls=$(ls -ld "$PRG")
link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' >/dev/null; then
PRG="$link"
else
PRG="$(dirname "$PRG")/$link"
fi
done
saveddir=$(pwd)
ROCKETMQ_HOME=$(dirname "$PRG")/..
# make it fully qualified
ROCKETMQ_HOME=$(cd "$ROCKETMQ_HOME" && pwd)
cd "$saveddir"
fi
export ROCKETMQ_HOME
namesrvAddr=
while [ -z "${namesrvAddr}" ]; do
read -p "Enter name server address list:" namesrvAddr
done
clusterName=
while [ -z "${clusterName}" ]; do
read -p "Choose a cluster to export:" clusterName
done
read -p "Enter file path to export [default /tmp/rocketmq/export]:" filePath
if [ -z "${filePath}" ]; then
filePath="/tmp/rocketmq/config"
fi
if [[ -e ${filePath} ]]; then
rm -rf ${filePath}
fi
sh ${ROCKETMQ_HOME}/bin/mqadmin exportMetrics -c ${clusterName} -n ${namesrvAddr} -f ${filePath}
sh ${ROCKETMQ_HOME}/bin/mqadmin exportConfigs -c ${clusterName} -n ${namesrvAddr} -f ${filePath}
sh ${ROCKETMQ_HOME}/bin/mqadmin exportMetadata -c ${clusterName} -n ${namesrvAddr} -f ${filePath}
cd ${filePath} || exit
configs=$(cat ./configs.json)
if [ -z "$configs" ]; then
configs="{}"
fi
metadata=$(cat ./metadata.json)
if [ -z "$metadata" ]; then
metadata="{}"
fi
metrics=$(cat ./metrics.json)
if [ -z "$metrics" ]; then
metrics="{}"
fi
echo "{
\"configs\": ${configs},
\"metadata\": ${metadata},
\"metrics\": ${metrics}
}" >rocketmq-metadata-export.json
echo -e "[INFO] The RocketMQ metadata has been exported to the file:${filePath}/rocketmq-metadata-export.json"