Я знаю, що 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>
У мене працюють машини з декількома екземплярами постгресів, і тому у мене також виникає проблема намагатися зіставити правильну базу даних з кожним портом. Я схильний робити:
$ 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
(зверніть увагу, ті ж прапори)