Если Вы хотите сделать это из базы данных, просто сделайте "порт SHOW". Но это предполагает, что Вы смогли соединиться с ним по крайней мере локально...
У меня есть машины с несколькими выполнением экземпляров пост-ГРЭС - и таким образом, у меня также есть проблема попытки подойти корректную базу данных с каждым портом. Я склонен делать:
$ ps aux | grep postgres | grep -v 'postgres:'
И затем, для каждого из возвращенных экземпляров ищут каталог (-D
аргумент) и:
$ sudo grep port $DIR/postgresql.conf
Вот одно решение, которое я нашел:
sudo apt-get install nmap
sudo nmap localhost | grep postgresql
Если Вы желаете искать нелокальную машину, просто измениться localhost
к IP-адресу сервера.
Утилита PostgreSQL pg_lsclusters показывает информацию о конфигурации и состоянии всех кластеров, включая номер порта.
$ pg_lsclusters
Version Cluster Port Status Owner Data directory Log file
8.4 main 5433 online postgres /var/lib/postgresql/8.4/main /var/log/postgresql/postgresql-8.4-main.log
Это также имеет то преимущество, что для запуска не требуются привилегии sudo.
В системах Debian и Ubuntu команда pg_lsclusters предоставляется пакетом postgresql-common, который должен быть установлен по умолчанию с сервером postgresql.