Postgres - 在bash中测试数据库连接

Rap*_*ael 18 postgresql bash docker coreos

我想知道是否有替代psql命令来测试使用bash连接到postgresql数据库.

我正在建立一个核心操作系统集群,并且有一个辅助服务,它应该执行相当于psql 'host=xxx port=xxx dbname=xxx user=xxx'每分钟的操作来确定服务是否正在运行,更重要的是,如果可以使用给定的参数连接到服务.

我无法直接在Core OS上安装postgres.通常在Core OS中使用的命令是类似的curl -f ${COREOS_PUBLIC_IPV4}:%i;.但它只告诉服务本身是否在给定端口上运行,没有任何访问检查.

先感谢您!

ali*_*aba 20

pg_isready是一个用于检查PostgreSQL数据库服务器连接状态的实用程序.退出状态指定连接检查的结果.

它可以很容易地用于bash.

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


Dav*_*han 10

您可以用您选择的语言编写简单的连接脚本.

希望您的Core 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)
Run Code Online (Sandbox Code Playgroud)

现在你的cmdline看起来像这样

python psqltest.py && echo 'OK' || echo 'FAIL'
Run Code Online (Sandbox Code Playgroud)