web-dev-qa-db-ja.com

Postgres-bashでのデータベース接続のテスト

Bashを使用してpostgresqlデータベースへの接続をテストするpsqlコマンドに代わるものがあるのだろうか。

私はコアOSクラスターをセットアップしていますが、psql 'Host=xxx port=xxx dbname=xxx user=xxx'毎分、サービスが実行されているかどうかを判断します。さらに重要なことは、指定されたパラメーターを使用してサービスに接続できるかどうかです。

Core OSにpostgresを直接インストールできません。コアOSで通常使用されるコマンドは、curl -f ${COREOS_PUBLIC_IPV4}:%i;。ただし、アクセスチェックなしで、サービス自体が特定のポートで実行されている場合にのみ通知します。

前もって感謝します!

15
Raphael

pg_isreadyは、PostgreSQLデータベースサーバーの接続状態を確認するためのユーティリティです。終了ステータスは、接続チェックの結果を指定します。

Bashで簡単に使用できます。

https://www.postgresql.org/docs/9.3/static/app-pg-isready.html

18
alibaba

選択した言語で簡単な接続スクリプトを作成できます。

コアOSシステムにPerl、php、python、Rubyなどのいずれかがインストールされていることが望ましい

ここにPythonのものがあります:

#!/usr/bin/python2.4
#
import psycopg2
try:
    db = psycopg2.connect("dbname='...' user='...' Host='...' password='...'")
except:
    exit(1)

exit(0)

今、あなたのコマンドラインは次のようになります

python psqltest.py && echo 'OK' || echo 'FAIL'
6
David Chan

チェックを実行するために、最初の(ディスクを節約する)を拡張する単純なコンテナーを構築できます。例えば:

FROM postgres

ENTRYPOINT [ "psql", "-h", "$POSTGRES_PORT_5432_TCP_ADDR",  "-p", "$POSTGRES_PORT_5432_TCP_PORT" ]

postgresとは異なるイメージを使用している場合は、もちろんそのイメージを使用してください。ほぼすべてのコマンドラインを使用し、CoreOSホスト上のbashからの終了コードを確認できます。

#!/bin/sh
if ! docker run --link postgres:postgres psql --command "select * from foo;" ; then
   # Do something
fi
2
J.C.

PSQLシェル(psql)で接続情報を表示するには、\c conninfoを使用します

0
Gene