Add quorum-autofix.sh

This commit is contained in:
2025-11-15 02:11:40 +01:00
commit 4dfa8bac35

32
quorum-autofix.sh Normal file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
# /usr/local/sbin/quorum-autofix.sh
# Automatically fix Proxmox cluster quorum to prevent "activity blocked"
LOGFILE="/var/log/quorum-autofix.log"
LOCAL_NODE=$(hostname)
# Extract Total votes (nodes currently online)
TOTAL=$(pvecm status | awk -F: '/Total votes:/ {gsub(/ /,"",$2); print $2}')
# Extract Expected votes (cluster configuration)
EXPECTED=$(pvecm status | awk -F: '/Expected votes:/ {gsub(/ /,"",$2); print $2}')
if [[ -z "$TOTAL" || -z "$EXPECTED" ]]; then
echo "[$(date)] [$LOCAL_NODE] Could not parse quorum status." >> $LOGFILE
exit 1
fi
# Current quorum in X/Y format
CURRENT="${TOTAL}/${EXPECTED}"
echo "[$(date)] [$LOCAL_NODE] Current quorum: $CURRENT" >> $LOGFILE
# Determine correct expected votes
if [[ "$TOTAL" -lt "$EXPECTED" ]]; then
echo "[$(date)] [$LOCAL_NODE] Total votes ($TOTAL) < Expected votes ($EXPECTED) → fixing quorum" >> $LOGFILE
pvecm expected "$TOTAL"
echo "[$(date)] [$LOCAL_NODE] Quorum fixed: expected votes set to $TOTAL" >> $LOGFILE
else
echo "[$(date)] [$LOCAL_NODE] Quorum OK, no change needed" >> $LOGFILE
fi
exit 0