pd-ctl使用报错

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
【概述】场景+问题概述

(1)region.log 内容如下
operator add remove-peer 13001 5
operator add remove-peer 13029 5

(2)为什么使用如下脚本执行时却提示错误?
cat region.log | while read line
do
/home/tidb/pd-ctl -u http://192.168.1.32:2379 ${line}
done

提示错误信息如下
Usage:
pd-ctl operator add remove-peer <region_id> <from_store_id> [flags]

Global Flags:
–cacert string path of file that contains list of trusted SSL CAs
–cert string path of file that contains X509 certificate in PEM format
-h, --help help message
–key string path of file that contains X509 key in PEM format
-u, --pd string address of pd (default “http://127.0.0.1:2379”)

但是单独执行命令
/home/tidb/pd-ctl -u http://192.168.1.32:2379 operator add remove-peer 13001 5 是OK的,没问题的。

【背景】做过哪些操作
【现象】业务和数据库现象
【业务影响】
【TiDB 版本】
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)

拼接失败了吧,你先echo你的pdctl命令是不是对的

拼接完全正确,没任何问题,就是执行有问题。帮忙看下,因为这个后续估计大家可能都会用到

${line}改成$line试试

还是报错,详细信息如下
[tidb@~]$ cat region.log | while read line

do
echo “/home/tidb/pd-ctl -u http://192.168.1.32:2379 $line”
/home/tidb/pd-ctl -u http://192.168.1.32:2379 $line
done
/home/tidb/pd-ctl -u http://192.168.1.32:2379 operator add remove-peer 13001 5

Usage:
pd-ctl operator add remove-peer <region_id> <from_store_id> [flags]

Global Flags:
–cacert string path of file that contains list of trusted SSL CAs
–cert string path of file that contains X509 certificate in PEM format
-h, --help help message
–key string path of file that contains X509 key in PEM format
-u, --pd string address of pd (default “http://127.0.0.1:2379”)

试试把-u参数放到最后面行不

-u 放在最后还是不行,你可以找一个线上集群试一下,只要 region.log 里的行数不太多,不应影响线上集群的。

试了下确实有问题,我找大佬来看看

写到其他文件在执行

1 个赞

我测试过了,你把拼接好的pdctl命令保存到另外一个shell文件,再运行这个文件就可以

只有一个对我有用,我送给下面的tuger了,抱歉。写入文件再执行,我用的是这种方式,比较好奇,所以问了一下,多谢

ok. 解决就行

还有这种窍门,学习了

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。