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
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:
lsof und nmap sind Lösungen, aber nicht standardmäßig installiert. Was Sie wollen, ist netstat (8).
sudo netstat -plunt |grep postgres
g
Flag mehr für den ss
Befehl. Versuchen Sie:ss -pa |grep postgresql
ss -pan |grep postgres
ist besser geeignet
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.
pg_lsclusters
ein Ubuntu-Ismus ist und kein Standardbefehl von Postgres. Es wird für diesen Fall funktionieren, ist aber keine Allzwecklösung ...
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 ...
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>
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 ( -D
Argument) und:
$ sudo grep port $DIR/postgresql.conf
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 localhost
die IP-Adresse des Servers.
ss -plung|grep postgres
(Anmerkung, gleiche Flags)