Я знаю, что по умолчанию PostgreSQL прослушивает порт 5432, но какая команда фактически определяет порт PostgreSQL?
Конфигурация: Ubuntu 9.10 с PostgreSQL 8.4
Я знаю, что по умолчанию PostgreSQL прослушивает порт 5432, но какая команда фактически определяет порт PostgreSQL?
Конфигурация: Ubuntu 9.10 с PostgreSQL 8.4
Ответы:
lsof и nmap являются решениями, но они не установлены по умолчанию. То, что вы хотите, это netstat (8).
sudo netstat -plunt |grep postgres
g
флага ss
. Попробуйте:ss -pa |grep postgresql
ss -pan |grep postgres
больше подходит
Утилита 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.
pg_lsclusters
это Ubuntu-ism, а не стандартная команда Postgres. Это будет работать для этого случая, но не является универсальным решением ...
Если вы хотите сделать это из базы данных, просто сделайте «ПОКАЗАТЬ порт». Но это предполагает, что вы смогли подключиться к нему, по крайней мере, локально ...
Если вы ищете на локальном компьютере, я бы использовал команду lsof для проверки порта, который использует postgresql
lsof -p <postgres_process_id>
У меня есть машины с несколькими запущенными экземплярами postgres, и поэтому у меня также есть проблема с попыткой сопоставить правильную базу данных с каждым портом. Я склонен делать:
$ 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-адрес сервера.
ss -plung|grep postgres
(обратите внимание, те же флаги)