Couchbase CBBackupRapper不使用包含括号的密码

Couchbase CBBackupRapper不使用包含括号的密码,couchbase,Couchbase,我的Couchbase密码包含括号,这会给cbbackuprapper带来麻烦,不过cbbackup工作正常 这是我正在运行的命令: CBbackupRapper/backup dir-用户名管理员-密码“XXXXXXXXXX”-模式差异-存储桶源存储桶名称-单个节点 这是输出: Waiting for the backup to complete... /bin/sh: 1: Syntax error: "(" unexpected /bin/sh: 1: Syntax error: "("

我的Couchbase密码包含括号,这会给cbbackuprapper带来麻烦,不过cbbackup工作正常

这是我正在运行的命令: CBbackupRapper/backup dir-用户名管理员-密码“XXXXXXXXXX”-模式差异-存储桶源存储桶名称-单个节点

这是输出:

Waiting for the backup to complete...
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
/bin/sh: 1: Syntax error: "(" unexpected
SUCCESSFULLY COMPLETED!
不用说备份完成得太快,而且没有成功完成


有人知道吗?

这似乎是python脚本中的一个bug,在构建命令行时,它应该真正引用密码和其他参数。此修补程序修复了以下问题:

--- /opt/couchbase/lib/python/cbbackupwrapper.orig  2017-05-16 11:03:36.045523102 +0300
+++ /opt/couchbase/lib/python/cbbackupwrapper   2017-05-16 11:04:08.427692842 +0300
@@ -17,6 +17,7 @@
 import threading
 import time
 import urllib2
+import pipes

 """Written by Daniel Owen owend@couchbase.com on 27 June 2014
 Version 1.4    Last updated 10 July 2014
@@ -356,7 +357,7 @@
         command_line = '"' + os.path.join(path, backup_exe) + '"' + ' -v -t 1 --vbucket-list=' \
             + ''.join(str(chunk).split()) + ' http://' + node + ':' + rest + ' ' \
             + '"' + os.path.join(backupDir, vbucketsname) + '"' + ' -u ' + args.username \
-            + ' -p ' + args.password + extra_options + mode_options + ssl_option + specific_bucket \
+            + ' -p ' + pipes.quote(args.password) + extra_options + mode_options + ssl_option + specific_bucket \
             + ' 2> ' + '"' + os.path.join(backupDir, 'logs', vbucketsname) + '.err' + '"'
         process_queue.put(command_line)

工作得很好。谢谢