Bestimmen des PostgreSQL-Ports


11

Ich weiß, dass PostgreSQL standardmäßig Port 5432 überwacht, aber wie lautet der Befehl, um den Port von PostgreSQL tatsächlich zu bestimmen?

Konfiguration: Ubuntu 9.10 mit PostgreSQL 8.4

Antworten:


24

lsof und nmap sind Lösungen, aber nicht standardmäßig installiert. Was Sie wollen, ist netstat (8).

sudo netstat -plunt |grep postgres

Linux migriert angeblich von route / ifconfig / netstat weg. Der äquivalente moderne Befehl ist ss -plung|grep postgres(Anmerkung, gleiche Flags)
ptman

1
Es gibt kein gFlag mehr für den ssBefehl. Versuchen Sie:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox danke für das Update, aber für mich gibt das den Namen des Ports, nicht die Nummer, so denke ich ss -pan |grep postgresist besser geeignet
ptman

6

Das PostgreSQL-Dienstprogramm pg_lsclusters zeigt Informationen zur Konfiguration und zum Status aller Cluster an, einschließlich der Portnummer.

$ 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

Dies hat auch den Vorteil, dass für die Ausführung keine Sudo-Berechtigungen erforderlich sind.

Auf Debian- und Ubuntu-Systemen wird der Befehl pg_lsclusters vom Paket postgresql-common bereitgestellt, das standardmäßig auf dem postgresql-Server installiert werden sollte.


3
Beachten Sie, dass dies pg_lsclustersein Ubuntu-Ismus ist und kein Standardbefehl von Postgres. Es wird für diesen Fall funktionieren, ist aber keine Allzwecklösung ...
voretaq7

2

Wenn Sie dies aus der Datenbank heraus tun möchten, führen Sie einfach "SHOW port" aus. Dies setzt jedoch voraus, dass Sie zumindest lokal eine Verbindung herstellen konnten ...


1

Wenn Sie auf dem lokalen Computer suchen, würde ich den Befehl lsof verwenden, um zu überprüfen, welchen Port postgresql verwendet

lsof -p <postgres_process_id>

Möglicherweise müssen Sie dies als root ausführen.
Michael Mior

1

Ich habe Computer mit mehreren Postgres-Instanzen ausgeführt - und daher habe ich auch das Problem, die richtige Datenbank mit jedem Port abzugleichen. Ich neige dazu zu tun:

$ ps aux | grep  postgres | grep -v 'postgres:'

Suchen Sie dann für jede zurückgegebene Instanz nach dem Verzeichnis ( -DArgument) und:

$ sudo grep port $DIR/postgresql.conf

0

Hier ist eine Lösung, die ich gefunden habe:

sudo apt-get install nmap
sudo nmap localhost | grep postgresql

Wenn Sie einen nicht lokalen Computer durchsuchen möchten, ändern Sie einfach localhostdie IP-Adresse des Servers.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.