Determinación del puerto de PostgreSQL

12

Sé que, por defecto, PostgreSQL escucha en el puerto 5432, pero ¿cuál es el comando para determinar realmente el puerto de PostgreSQL?

Configuración: Ubuntu 9.10 con PostgreSQL 8.4

Matthew Rankin
fuente

Respuestas:

26

lsof y nmap son soluciones, pero no están instaladas por defecto. Lo que quieres es netstat (8).

sudo netstat -plunt |grep postgres
ptman
fuente
Se supone que Linux está migrando fuera de route / ifconfig / netstat. El comando moderno equivalente es ss -plung|grep postgres(nota, las mismas banderas)
ptman
1
gYa no hay bandera para el sscomando. Prueba:ss -pa |grep postgresql
GrayedFox
1
@GrayedFox gracias por la actualización, pero para mí eso da el nombre del puerto, no el número, así que creo que ss -pan |grep postgreses más adecuado
ptman
6

La utilidad PostgreSQL pg_lsclusters muestra información sobre la configuración y el estado de todos los clústeres, incluido el número de puerto.

$ 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

Esto también tiene la ventaja de no requerir privilegios de 'sudo' para ejecutarse.

En sistemas Debian y Ubuntu, el comando pg_lsclusters lo proporciona el paquete postgresql-common, que debe instalarse de manera predeterminada con el servidor postgresql.

Dan Stangel
fuente
3
Tenga en cuenta que pg_lsclusterses un Ubuntu-ism, y no es un comando estándar de Postgres. Funcionará para este caso, pero no es una solución de uso general ...
voretaq7
2

Si quiere hacerlo desde la base de datos, simplemente haga "SHOW port". Pero eso supone que has podido conectarte a él, al menos localmente ...

Magnus Hagander
fuente
1

Si está buscando en la máquina local, usaría el comando lsof para verificar el puerto que postgresql está usando

lsof -p <postgres_process_id>
Dominik
fuente
Puede que tenga que ejecutar esto como root.
Michael Mior
1

Tengo máquinas con varias instancias de postgres en ejecución, por lo que también tengo el problema de intentar hacer coincidir la base de datos correcta con cada puerto. Tiendo a hacer:

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

Y luego, para cada una de las instancias devueltas, busque el directorio ( -Dargumento) y:

$ sudo grep port $DIR/postgresql.conf
Joe H.
fuente
0

Aquí hay una solución que he encontrado:

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

Si desea buscar una máquina no local, simplemente cambie localhosta la dirección IP del servidor.

Matthew Rankin
fuente