#!/bin/bash E_OK=0;E_WARN=1;E_CRIT=2;E_UNKNOWN=3 if [[ -z "$1" ]]; then echo "Usage: $(basename $0) PostgresMasterHostname"; exit $E_UNKNOWN; fi mastername="$1" HOST="localhost" #HOST="/var/run/postgresql" res=$E_OK; res_txt="OK"; res_txt2="Host $mastername is Master" strings="$(echo "node_id hname status role last_status_change")" while IFS='|' read -r node_id hname port status lb_weight role select_cnt load_balance_node replication_delay replication_state replication_sync_state last_status_change do strings="$strings\n$(echo "$node_id $hname $status $role $last_status_change")" if [[ "$hname" == "$mastername" && "$role" != "primary" ]] then res=$E_CRIT; res_txt="CRIT"; res_txt2="Host $hname is not Master" fi if [[ "$hname" != "$mastername" && "$role" == "primary" ]] then if [[ $res -lt $E_WARN ]]; then res=$E_WARN; res_txt="CRIT"; res_txt2="Host $hname is Master (myst be a slave)"; fi fi done < <(psql -tA -h localhost -c "SHOW pool_nodes;" postgres postgres) echo "$res_txt: $res_txt2" echo -e "$strings" exit $res