| #!/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" |