GNU/Linux >> Linux の 問題 >  >> Linux

PostgreSQL がインストールされているかどうかを Linux スクリプトで確認するにはどうすればよいですか?

Debian ベースの場合。

aptitude show postgresql | grep State

しかし、 --version のようなフラグを付けて起動してみることができると思います 、単にいくつかの情報を出力して終了します。

更新 「サービス pos​​tgres ステータス」を使用します。試してみてください:

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

簡単に書くことができます:

psql --version

出力は次のように表示されます:

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

これを行う簡単な方法はありません。できることは、パッケージ マネージャー (rpm、dpkg) で確認するか、必要なファイルの可能性のある場所を調べることだけです。または、可能性の高いポート (5432) に接続して、PostgreSQL プロトコルの応答が得られるかどうかを確認することもできます。しかし、これはどれも非常に堅牢になることはありません。要件を確認することをお勧めします。


which を試してみるのはどうですか コマンド?

which psql を実行した場合 Postgres がインストールされていないため、出力がないように見えます。別のコマンドを受け入れる準備ができた端末プロンプトを取得するだけです:

> which psql
>

ただし、Postgres がインストールされている場合は、Postgres のインストール場所へのパスを含む応答が返されます:

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

man which を見る あなたを助けることができるオプションもあるようです:

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

つまり、使用しているスクリプト言語が端末コマンドを実行できる限り、which -s psql を送信できるようです。 戻り値を使用して、Postgres がインストールされているかどうかを判断します。そこから、好きなように結果を印刷できます。

私のマシンには postgres がインストールされているので、以下を実行します

> which -s psql
> echo $?
0

これは、コマンドが 0 を返したことを示しています。これは、Postgres 実行可能ファイルが私のマシンで見つかったことを示しています。

echo $? の使用に関する情報は次のとおりです。


Linux
  1. Linux にインストールされている RPM パッケージのベンダーを確認する方法

  2. LAN でどのコンピュータがオンになっているかを通知する Linux bash スクリプトを作成するにはどうすればよいですか?

  3. シェル スクリプトが実行されているかどうかを確認する Linux コマンド

  1. どのバージョンの nltk, scikit Learn がインストールされているかを確認するには?

  2. Linuxでどのタイムゾーンを確認する方法は?

  3. Linux マシンでどのポートがビジーで、どのポートが空いているかを確認するにはどうすればよいですか?

  1. 実行/インストールされているPostgresのバージョンを確認する方法

  2. Linux – JavaがインストールされたフォルダでJavaのバージョンを見つける方法は?

  3. Linux で UDP トラフィックを生成しているプロセスを特定するにはどうすればよいですか?