如果有一个mongo实例正在运行,我如何判断它正在从shell监听哪些端口号?我以为db.serverStatus()
美元就可以了,但我看不出来.我看到了
"connections" : {
"current" : 3,
"available" : 816
很接近...但是没有.建议?我读过文档,似乎找不到任何可以执行此操作的命令.
如果有一个mongo实例正在运行,我如何判断它正在从shell监听哪些端口号?我以为db.serverStatus()
美元就可以了,但我看不出来.我看到了
"connections" : {
"current" : 3,
"available" : 816
很接近...但是没有.建议?我读过文档,似乎找不到任何可以执行此操作的命令.
在system shell中,您可以使用lsof
(见下面德里克的答案)或netstat -an
来查看流程的实际操作.但是,假设您只能访问mongo
shell(您的问题标题暗示了这一点),那么您可以运行serverCmdLineOpts()
命令.该输出将为您提供命令行(argv)上传递的所有参数以及配置文件(已解析)中的参数,您可以根据这些信息推断端口mongod
正在侦听.下面是一个例子:
db.serverCmdLineOpts()
{
"argv" : [
"./mongod",
"-replSet",
"test",
"--rest",
"--dbpath",
"/data/test/r1",
"--port",
"30001"
],
"parsed" : {
"dbpath" : "/data/test/r1",
"port" : 30001,
"replSet" : "test",
"rest" : true
},
"ok" : 1
}
如果您没有通过上述特定端口选项,那么mongod
将默认监听27017和28017(http console).注意:还有几个其他参数可以在不显式的情况下更改端口,请参见此处:
https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole