Python 脚本错误
Python scripting error
我正在尝试通过 python 脚本启动 solr。存在三个条件:
第一次当用户不提供端口号和zookeeper实例时。
命令:/home/user/solr-5.3.0/bin/solr start
这个有效。
第 2 次,当用户只提供端口号时。
命令:/home/user/solr-5.3.0/bin/solr start -p 8898
这不执行。
ERROR: Port number is required when using the -p option!
第 3 次,当用户同时提供端口号和 zookeeper 实例时。
命令:/home/user/solr-5.3.0/bin/solr start -p 8898 -z localhost:2181
这个也不执行
ERROR: Port number is required when using the -p option!
我是 python 脚本的新手。我只需要编写脚本来将其部署到服务器上。这是正确的做法吗?有没有更好的方法来做到这一点?
代码
#!/usr/bin/env python
import os
import optparse
import subprocess
parser = optparse.OptionParser()
parser.add_option('-p', dest='port', help='Port(By Default it will start at 8983)',type=int)
parser.add_option('-z', dest='zk', help='zookeeper Server(By default it will take embedded zookeeper)')
(options, args) = parser.parse_args()
if options.port is None and options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr start"], shell=True)
elif options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr start -p ", str(options.port)], shell=True)
else :
subprocess.call(["/home/user/solr-5.3.0/bin/solr start -p", str(options.port), "-z", str(options.zk)], shell=True)
更正后的代码:
if options.port is None and options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start"])
elif options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start", "-p", str(options.port)])
else:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start", "-p", str(options.port), "-z", str(options.zk)])
我正在尝试通过 python 脚本启动 solr。存在三个条件:
第一次当用户不提供端口号和zookeeper实例时。
命令:/home/user/solr-5.3.0/bin/solr start
这个有效。
第 2 次,当用户只提供端口号时。
命令:/home/user/solr-5.3.0/bin/solr start -p 8898
这不执行。
ERROR: Port number is required when using the -p option!
第 3 次,当用户同时提供端口号和 zookeeper 实例时。
命令:/home/user/solr-5.3.0/bin/solr start -p 8898 -z localhost:2181
这个也不执行
ERROR: Port number is required when using the -p option!
我是 python 脚本的新手。我只需要编写脚本来将其部署到服务器上。这是正确的做法吗?有没有更好的方法来做到这一点?
代码
#!/usr/bin/env python
import os
import optparse
import subprocess
parser = optparse.OptionParser()
parser.add_option('-p', dest='port', help='Port(By Default it will start at 8983)',type=int)
parser.add_option('-z', dest='zk', help='zookeeper Server(By default it will take embedded zookeeper)')
(options, args) = parser.parse_args()
if options.port is None and options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr start"], shell=True)
elif options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr start -p ", str(options.port)], shell=True)
else :
subprocess.call(["/home/user/solr-5.3.0/bin/solr start -p", str(options.port), "-z", str(options.zk)], shell=True)
更正后的代码:
if options.port is None and options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start"])
elif options.zk is None:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start", "-p", str(options.port)])
else:
subprocess.call(["/home/user/solr-5.3.0/bin/solr", "start", "-p", str(options.port), "-z", str(options.zk)])