GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je vérifier si PostgreSQL est installé ou non via un script Linux ?

S'il est basé sur Debian.

aptitude show postgresql | grep State

Mais je suppose que vous pouvez simplement essayer de le lancer avec un drapeau comme --version , qui imprime simplement quelques informations et quitte.

Mise à jour en utilisant "service postgres status". Essayez :

service postgres status
if [ "$?" -gt "0" ]; then
  echo "Not installed".
else
  echo "Intalled"
fi

On peut simplement écrire :

psql --version

la sortie s'affiche comme :

psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)

Il n'y a pas de moyen simple de le faire. Tout ce que vous pouvez faire est de vérifier auprès du gestionnaire de paquets (rpm, dpkg) ou de sonder certains emplacements probables pour les fichiers que vous souhaitez. Ou vous pouvez essayer de vous connecter à un port probable (5432) et voir si vous obtenez une réponse de protocole PostgreSQL. Mais rien de tout cela ne sera très robuste. Vous voudrez peut-être revoir vos besoins.


Pourquoi ne pas essayer le which commande ?

Si vous deviez exécuter which psql et que Postgres n'est pas installé, il semble n'y avoir aucune sortie. Vous obtenez juste l'invite du terminal prête à accepter une autre commande :

> which psql
>

Mais si Postgres est installé, vous obtiendrez une réponse avec le chemin vers l'emplacement de l'installation de Postgres :

> which psql
/opt/boxen/homebrew/bin/psql

En regardant man which il semble également y avoir une option qui pourrait vous aider :

-s      No output, just return 0 if any of the executables are found, or
        1 if none are found.

Il semble donc que tant que le langage de script que vous utilisez peut exécuter une commande de terminal, vous pouvez envoyer which -s psql et utilisez la valeur de retour pour déterminer si Postgres est installé. À partir de là, vous pouvez imprimer ce résultat comme bon vous semble.

J'ai installé postgres sur ma machine donc j'exécute ce qui suit

> which -s psql
> echo $?
0

qui me dit que la commande a retourné 0, indiquant que l'exécutable Postgres a été trouvé sur ma machine.

Voici les informations sur l'utilisation de echo $?


Linux
  1. Comment puis-je écrire un script bash Linux qui m'indique quels ordinateurs sont allumés dans mon réseau local ?

  2. Comment puis-je exécuter un script Perl en tant que démon système sous Linux ?

  3. Comment vérifier l'accès à Internet à l'aide du script bash sous Linux?

  4. comment vérifier quelle version de nltk, scikit learn est installée ?

  5. Comment vérifier quel fuseau horaire sous Linux ?

Comment vérifier la version Java installée sur Linux

Comment vérifier si vous êtes en session d'écran ou pas sous Linux

Comment savoir si un package est installé ou non sous Linux et Unix

Comment vérifier si l'interface graphique est installée sous Linux à partir de la ligne de commande

Comment vérifier si le noyau Linux est activé ou non avec Retpoline ?

Comment puis-je vérifier si les cgroups sont disponibles sur mon hôte Linux ?