как я могу видеть, какие порты монго слушает из Mongo shell?
Если у меня запущен экземпляр mongo, как я могу проверить, какие номера портов он прослушивает из оболочки? Я так и думал!--1--> сделал бы это, но я не вижу его. Я вижу это
"connections" : {
"current" : 3,
"available" : 816
что близко... но нет. Предложения? Я прочитал документы и не могу найти команду, которая сделает это.
4 ответов
из системной оболочки вы можете использовать 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 консоль) по умолчанию. Примечание: есть несколько других аргументов, которые могут изменять порты, не будучи явными, см. здесь:
https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole
вы можете сделать это из оболочки операционной системы, выполнив:
sudo lsof -iTCP -sTCP:LISTEN | grep mongo
MongoDB по умолчанию прослушивает только один порт (27017). Если --rest
интерфейс активен, порт 28017 (27017+1000) также будет открыт для обработки веб-запросов для деталей.
MongoDB поддерживает getParameter
команда, но это работает только в том случае, если вы уже подключены к базе данных (в этот момент Вы уже знаете порт).