Linux 命令行获取 mongodb 版本
Linux command line get mongodb version
我可以在命令行中获取版本,但如何将其存储在变量中:
In [28]: if subprocess.call('mongo --version', shell = True) == '':
....: print 'Not installed'
....: else:
print 'Already installed'
....: print subprocess.call('mongo --version', shell = True)
....:
MongoDB shell version: 2.6.1
MongoDB shell version: 2.6.1
0
是否可以只检索版本值并将其存储在变量中?
v = subprocess.call('mongo --version', shell = True)
?
subprocess.check_call
return命令的 return 代码。
使用 subprocess.check_output
将命令的输出重新作为字节字符串:
try:
output = subprocess.check_output(['mongo', '--version'])
version = output.split()[-1] # get the last word: version
except (OSError, subprocess. CalledProcessError):
version = None
您需要捕获异常 OSError
(如果未找到命令,子进程将引发异常),CalledProcessError
(如果命令未 运行 成功,则会引发异常).
执行 mongo --version
你会得到 mongodb client 版本,而不是数据库引擎版本,但我不确定你到底想要什么。
如果您安装了 Python 驱动程序 PyMongo
,您可以获得数据库引擎版本:
from pymongo import MongoClient
client = MongoClient(host=host, port=port)
print client.server_info()['version']
我可以在命令行中获取版本,但如何将其存储在变量中:
In [28]: if subprocess.call('mongo --version', shell = True) == '':
....: print 'Not installed'
....: else:
print 'Already installed'
....: print subprocess.call('mongo --version', shell = True)
....:
MongoDB shell version: 2.6.1
MongoDB shell version: 2.6.1
0
是否可以只检索版本值并将其存储在变量中?
v = subprocess.call('mongo --version', shell = True)
?
subprocess.check_call
return命令的 return 代码。
使用 subprocess.check_output
将命令的输出重新作为字节字符串:
try:
output = subprocess.check_output(['mongo', '--version'])
version = output.split()[-1] # get the last word: version
except (OSError, subprocess. CalledProcessError):
version = None
您需要捕获异常 OSError
(如果未找到命令,子进程将引发异常),CalledProcessError
(如果命令未 运行 成功,则会引发异常).
执行 mongo --version
你会得到 mongodb client 版本,而不是数据库引擎版本,但我不确定你到底想要什么。
如果您安装了 Python 驱动程序 PyMongo
,您可以获得数据库引擎版本:
from pymongo import MongoClient
client = MongoClient(host=host, port=port)
print client.server_info()['version']