如果我有一个正在运行的mongo实例,我如何检查它从shell监听的端口号?我以为db.serverStatus()
会这么做,但我看不出来。我看到了这个
"connections" : {
"current" : 3,
"available" : 816
很接近..。但不是。有什么建议吗?我已经阅读了文档,但似乎找不到任何可以做到这一点的命令。
发布于 2012-02-20 20:24:10
在system shell中,您可以使用lsof
(参见下面Derick的答案)或netstat -an
来查看进程实际在做什么。但是,假设您只能访问mongo
外壳(正如您的问题标题所暗示的那样),那么您可以运行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
发布于 2012-02-19 18:40:03
您可以通过运行以下命令在操作系统shell中执行此操作:
sudo lsof -iTCP -sTCP:LISTEN | grep mongo
发布于 2015-12-07 20:20:09
试试这个:
db.runCommand({whatsmyuri : 1})
它将同时显示IP地址和端口号。
https://stackoverflow.com/questions/9346431
复制相似问题