Je sais que par défaut PostgreSQL écoute sur le port 5432, mais quelle est la commande pour déterminer réellement le port de PostgreSQL?
Configuration: Ubuntu 9.10 avec PostgreSQL 8.4
Je sais que par défaut PostgreSQL écoute sur le port 5432, mais quelle est la commande pour déterminer réellement le port de PostgreSQL?
Configuration: Ubuntu 9.10 avec PostgreSQL 8.4
Réponses:
lsof et nmap sont des solutions, mais elles ne sont pas installées par défaut. Ce que vous voulez, c'est netstat (8).
sudo netstat -plunt |grep postgres
g
a plus de drapeau pour la ss
commande. Essayez:ss -pa |grep postgresql
ss -pan |grep postgres
c'est plus approprié
L'utilitaire PostgreSQL pg_lsclusters affiche des informations sur la configuration et l'état de tous les clusters, y compris le numéro de port.
$ 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
Cela présente également l'avantage de ne pas nécessiter de privilèges «sudo» pour s'exécuter.
Sur les systèmes Debian et Ubuntu, la commande pg_lsclusters est fournie par le package postgresql-common, qui doit être installé par défaut avec le serveur postgresql.
pg_lsclusters
c'est un Ubuntu-ism, et n'est pas une commande Postgres standard. Cela fonctionnera pour ce cas, mais ce n'est pas une solution polyvalente ...
Si vous voulez le faire depuis l'intérieur de la base de données, faites simplement "SHOW port". Mais cela suppose que vous avez pu vous y connecter, au moins localement ...
Si vous recherchez sur la machine locale, j'utiliserais la commande lsof pour vérifier le port utilisé par postgresql
lsof -p <postgres_process_id>
J'ai des machines avec plusieurs instances postgres en cours d'exécution - et j'ai donc également le problème d'essayer de faire correspondre la base de données correcte avec chaque port. J'ai tendance à faire:
$ ps aux | grep postgres | grep -v 'postgres:'
Et puis, pour chacune des instances renvoyées, recherchez le répertoire ( -D
argument) et:
$ sudo grep port $DIR/postgresql.conf
Voici une solution que j'ai trouvée:
sudo apt-get install nmap
sudo nmap localhost | grep postgresql
Si vous souhaitez rechercher une machine non locale, changez simplement localhost
l'adresse IP du serveur.
ss -plung|grep postgres
(note, mêmes drapeaux)