github.com/percona/percona-xtradb-cluster-operator@v1.14.0/build/liveness-check.sh (about) 1 #!/bin/bash 2 3 if [[ $1 == '-h' || $1 == '--help' ]]; then 4 echo "Usage: $0 <user> <pass> <log_file>" 5 exit 6 fi 7 8 if [ -f /tmp/recovery-case ] || [ -f '/var/lib/mysql/sleep-forever' ]; then 9 exit 0 10 fi 11 12 if [[ -f '/var/lib/mysql/sst_in_progress' ]] || [[ -f '/var/lib/mysql/wsrep_recovery_verbose.log' ]]; then 13 exit 0 14 fi 15 16 { set +x; } 2>/dev/null 17 MYSQL_USERNAME="${MYSQL_USERNAME:-monitor}" 18 mysql_pass=$(cat /etc/mysql/mysql-users-secret/monitor || :) 19 MYSQL_PASSWORD="${mysql_pass:-$MONITOR_PASSWORD}" 20 DEFAULTS_EXTRA_FILE=${DEFAULTS_EXTRA_FILE:-/etc/my.cnf} 21 NODE_IP=$(hostname -I | awk ' { print $1 } ') 22 #Timeout exists for instances where mysqld may be hung 23 TIMEOUT=$((${LIVENESS_CHECK_TIMEOUT:-5} - 1)) 24 25 EXTRA_ARGS="" 26 if [[ -n $MYSQL_USERNAME ]]; then 27 EXTRA_ARGS="$EXTRA_ARGS -P 33062 -h${NODE_IP} --protocol=TCP --user=${MYSQL_USERNAME}" 28 fi 29 if [[ -r $DEFAULTS_EXTRA_FILE ]]; then 30 MYSQL_CMDLINE="/usr/bin/timeout $TIMEOUT mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE -nNE \ 31 --connect-timeout=$TIMEOUT ${EXTRA_ARGS}" 32 else 33 MYSQL_CMDLINE="/usr/bin/timeout $TIMEOUT mysql -nNE --connect-timeout=$TIMEOUT ${EXTRA_ARGS}" 34 fi 35 36 STATUS=$(MYSQL_PWD="${MYSQL_PASSWORD}" $MYSQL_CMDLINE --init-command="SET SESSION wsrep_sync_wait=0;" -e "SHOW GLOBAL STATUS LIKE 'wsrep_cluster_status';" | sed -n -e '3p') 37 set -x 38 39 if [[ -n ${STATUS} && ${STATUS} == 'Primary' ]]; then 40 exit 0 41 fi 42 43 exit 1