lsof e nmap são soluções, mas não são instaladas por padrão. O que você quer é netstat (8).
sudo netstat -plunt |grep postgres
Eu sei que, por padrão, o PostgreSQL escuta na porta 5432, mas qual é o comando para realmente determinar a porta do PostgreSQL?
Configuração: Ubuntu 9.10 com o PostgreSQL 8.4
O utilitário PostgreSQL pg_lsclusters mostra informações sobre a configuração e o status de todos os clusters, incluindo o número da porta.
$ 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
Isso também tem a vantagem de não exigir privilégios de 'sudo' para ser executado.
Nos sistemas Debian e Ubuntu, o comando pg_lsclusters é fornecido pelo pacote postgresql-common, que deve ser instalado por padrão com o servidor postgresql.
Se você quiser fazer isso dentro do banco de dados, apenas faça "SHOW port". Mas isso pressupõe que você tenha conseguido se conectar a ele, pelo menos localmente ...
Se você estiver pesquisando na máquina local, eu usaria o comando lsof para verificar a porta que o postgresql está usando
lsof -p <postgres_process_id>
Eu tenho máquinas com várias instâncias de postgres em execução - e também tenho o problema de tentar corresponder o banco de dados correto com cada porta. Eu costumo fazer:
$ ps aux | grep postgres | grep -v 'postgres:'
E, em seguida, para cada uma das instâncias retornadas, procure o diretório ( -D
argument) e:
$ sudo grep port $DIR/postgresql.conf
Aqui está uma solução que encontrei:
sudo apt-get install nmap
sudo nmap localhost | grep postgresql
Se você quiser pesquisar uma máquina não local, basta alterar localhost
para o endereço IP do servidor.
Tags postgresql ubuntu ubuntu-9.10 port