kubernetes 如何通过kubectl命令过滤PostgreSQL数据库名称?

9gm1akwq  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(83)

我正在使用kubernetes,希望只过滤PostgreSQL上的sampledb
我尝试使用这个命令:

kubectl exec podname-89tq4763k23-klp83 -- bash -c "psql -U postgres --tuples-only -P format=unaligned -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres'";"

字符串
但是它没有显示终端的任何输出,我的期望是它应该显示sampledb作为输出
尝试使用此命令列出所有数据库名称,并且它正在工作。

kubectl exec -it podname-89tq4763k23-klp83 -- psql -U postgres -c "\l"


我的问题是如何从数据库列表中只过滤sampledb名称?

List of databases
    Name     |  Owner   | Encoding |  Collate   |   Ctype    | ICU Locale | Locale Provider |   Access privileges
-------------+----------+----------+------------+------------+------------+-----------------+-----------------------
 sampledb    | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            |
 postgres    | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            |
 template0   | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/postgres          +
             |          |          |            |            |            |                 | postgres=CTc/postgres
 template1   | postgres | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/postgres          +
             |          |          |            |            |            |                 | postgres=CTc/postgres
(4 rows)


注意:我还计划使用这个kubectl命令,如果它可以作为我的bash脚本的变量。

wmtdaxz3

wmtdaxz31#

我觉得你的命令需要修改一下引用。

kubectl exec podname-89tq4763k23-klp83 -- bash -c "psql -U postgres --tuples-only -P format=unaligned -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres'";"

字符串
试试这个:

kubectl exec $POD -- bash -c "psql -U postgres -t -A -c \"SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres'\""

相关问题