From a89db454d0f4be29eaf05523a572649c959a55d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Sat, 11 Apr 2026 14:51:51 +0400 Subject: [PATCH] Improve postgres management scripts --- .../files/dump_all_databases.sh | 2 +- .../files/list_subscriptions.sh | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/site-cookbooks/kosmos_postgresql/files/dump_all_databases.sh b/site-cookbooks/kosmos_postgresql/files/dump_all_databases.sh index 893787a..5bf1eba 100644 --- a/site-cookbooks/kosmos_postgresql/files/dump_all_databases.sh +++ b/site-cookbooks/kosmos_postgresql/files/dump_all_databases.sh @@ -1,7 +1,7 @@ #!/bin/bash cd /tmp && \ (pg_dumpall --globals-only > globals.sql) && \ -psql -Atqc "SELECT datname FROM pg_database WHERE datallowconn AND datname NOT IN (''template0'',''postgres'')" | \ +psql -Atqc "SELECT datname FROM pg_database WHERE datallowconn AND datname NOT IN (''template1'',''postgres'')" | \ xargs -I{} -P4 sh -c " pg_dump -Fd -j 4 -d \"{}\" -f dump_{} && tar -cf - dump_{} | zstd -19 -T0 > dump_{}.tar.zst && diff --git a/site-cookbooks/kosmos_postgresql/files/list_subscriptions.sh b/site-cookbooks/kosmos_postgresql/files/list_subscriptions.sh index 3d95308..fbfbb2f 100644 --- a/site-cookbooks/kosmos_postgresql/files/list_subscriptions.sh +++ b/site-cookbooks/kosmos_postgresql/files/list_subscriptions.sh @@ -1,5 +1,16 @@ #!/bin/bash -for db in $(psql -Atqc "SELECT datname FROM pg_database WHERE datallowconn AND datname NOT IN ('template1','postgres')"); do - echo "==== DB: $db ====" - psql -d "$db" -c "SELECT * FROM pg_stat_subscription;" +set -euo pipefail + +psql -Atqc " +SELECT datname +FROM pg_database +WHERE datallowconn + AND datname NOT IN ('template1','postgres') +" | while read -r db; do + result=$(psql -X -At -d "$db" -c "SELECT * FROM pg_stat_subscription;" 2>/dev/null || true) + + if [[ -n "$result" ]]; then + echo "==== DB: $db ====" + echo "$result" + fi done