Я знаю, что порт монго по умолчанию 27017
и я могу соединиться с этим экземпляром на таком порте.
Но я пытался понять это другими средствами.
Я нашел это mongo
работает ps aux | grep mongo
с ним я вижу /usr/bin/mongod --config /etc/mongod.conf
В /etc/mongod.conf
порт 27018
Netstat netstat -tulnp | grep 2701
дает мне
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN -
Я не знаю, почему я не вижу название процесса. Есть ли любой другой способ быть уверенным, что монго продолжает работать 27017
?
lsof -i | grep mongo
Это перечислит все открытые файлы (lsof
), которые слушают на «интернет-адресах» (-i
). Продукция этого перекачана по трубопроводу к grep
, который используется, чтобы отфильтровать текстом. В этом случае мы ищем все файлы, открытые, связанные с Интернетом, тот матч монго Word .
Вы могли использовать nmap
, чтобы просмотреть порты в диапазоне от 1 до 65 535 с -p-
флаг
, Например,
Downloads:$ nmap -p- localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-10 12:07 MST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00036s latency).
Not shown: 65529 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
631/tcp open ipp
37818/tcp open unknown
46400/tcp open unknown
От системной оболочки можно использовать lsof
или netstat -an
, как Вы упомянули для просмотра то, что процесс делает с точки зрения открытых портов. Как альтернатива можно работать db.getCmdLineOpts()
команда от эти mongo
оболочка. Тот вывод даст Вам, все аргументы передали командную строку (argv) серверу и тем из (проанализированного) файла конфигурации, и можно вывести порты mongod
, слушает на основе той информации. Вот пример:
{
"argv" : [
"/usr/bin/mongod",
"--config",
"/etc/mongod.conf",
"--fork"
],
"parsed" : {
"bind_ip" : "127.0.0.1",
"config" : "/etc/mongodb/mongodb.conf",
"dbpath" : "/srv/mongodb",
"fork" : true,
"logappend" : "true",
"logpath" : "/var/log/mongodb/mongod.log",
"quiet" : "true",
"port" : 30001
},
"ok" : 1
}
, Если Вы не передали определенные опции порта как та выше, тогда эти mongod
, будет слушать на 27 017 (нормальный) и 28017 ( http интерфейс состояния ) по умолчанию.
Примечание: существует несколько других аргументов, которые могут изменить порты, не будучи явными, видеть здесь:
https://docs.mongodb.org/manual/reference/configuration-options/#sharding.clusterRole
я упоминаю это, потому что Ваш lsof
вывод также показывает порту 27 018 открытых, который является значением по умолчанию, если Вы имеете shardsvr
набор опции. Следовательно, Ваш вывод предполагает, что Вы можете иметь mongos
на 27 017 и (черепок) mongod
на 27 018. Если Вы соединяетесь с каждым и работаете getCmdLineOpts()
, необходимо быть в состоянии выяснить, как настроены вещи.
На самом деле можно использовать:
lsof -i -ac mongod
lsof может сделать, больше, чем просто ищут сетевые соединения. "-a" для "И" таким образом, он должен будет соответствовать обоим критериям. Иначе это принимает значение по умолчанию к "Или". "-c" для команды. Можно также указать имя пользователя или PID или много другого материала.