From ad24bbf496991a5ab988ec031d7594649c0cabf7 Mon Sep 17 00:00:00 2001 From: geoffroy desvernay Date: Thu, 31 Mar 2022 18:29:41 +0200 Subject: [PATCH] any /bin/sh is sufficient The code is still /bin/bash compliant, but also dash, BSD's sh and any bourne-compatible light shell --- clustercheck | 62 ++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/clustercheck b/clustercheck index 7098a14..214fa30 100755 --- a/clustercheck +++ b/clustercheck @@ -10,7 +10,7 @@ # Based on the original script from Unai Rodriguez # -if [[ $1 == '-h' || $1 == '--help' ]];then +if [ "$1" = '-h' -o "$1" = '--help' ];then echo "Usage: $0 " exit fi @@ -19,12 +19,12 @@ fi # admins to manually remove a node from a cluster easily. if [ -e "/var/tmp/clustercheck.disabled" ]; then # Shell return-code is 1 - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 51\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is manually disabled.\r\n" + printf "HTTP/1.1 503 Service Unavailable\r\n" + printf "Content-Type: text/plain\r\n" + printf "Connection: close\r\n" + printf "Content-Length: 51\r\n" + printf "\r\n" + printf "Percona XtraDB Cluster Node is manually disabled.\r\n" sleep 0.1 exit 1 fi @@ -46,13 +46,13 @@ DEFAULTS_EXTRA_FILE=${DEFAULTS_EXTRA_FILE:-/etc/my.cnf} TIMEOUT=10 EXTRA_ARGS="" -if [[ -n "$MYSQL_USERNAME" ]]; then +if [ -n "$MYSQL_USERNAME" ]; then EXTRA_ARGS="$EXTRA_ARGS --user=${MYSQL_USERNAME}" fi -if [[ -n "$MYSQL_PASSWORD" ]]; then +if [ -n "$MYSQL_PASSWORD" ]; then EXTRA_ARGS="$EXTRA_ARGS --password=${MYSQL_PASSWORD}" fi -if [[ -r $DEFAULTS_EXTRA_FILE ]];then +if [ -r $DEFAULTS_EXTRA_FILE ];then MYSQL_CMDLINE="mysql --defaults-extra-file=$DEFAULTS_EXTRA_FILE -nNE --connect-timeout=$TIMEOUT \ ${EXTRA_ARGS}" else @@ -64,47 +64,47 @@ fi WSREP_STATUS=$($MYSQL_CMDLINE -e "SHOW STATUS LIKE 'wsrep_local_state';" \ 2>${ERR_FILE} | tail -1 2>>${ERR_FILE}) -if [[ "${WSREP_STATUS}" == "4" ]] || [[ "${WSREP_STATUS}" == "2" && ${AVAILABLE_WHEN_DONOR} == 1 ]] +if [ "${WSREP_STATUS}" = "4" ] || [ "${WSREP_STATUS}" = "2" -a ${AVAILABLE_WHEN_DONOR} -eq 1 ] then # Check only when set to 0 to avoid latency in response. - if [[ $AVAILABLE_WHEN_READONLY -eq 0 ]];then + if [ $AVAILABLE_WHEN_READONLY -eq 0 ];then READ_ONLY=$($MYSQL_CMDLINE -e "SHOW GLOBAL VARIABLES LIKE 'read_only';" \ 2>${ERR_FILE} | tail -1 2>>${ERR_FILE}) - if [[ "${READ_ONLY}" == "ON" ]];then + if [ "${READ_ONLY}" = "ON" ];then # Percona XtraDB Cluster node local state is 'Synced', but it is in # read-only mode. The variable AVAILABLE_WHEN_READONLY is set to 0. # => return HTTP 503 # Shell return-code is 1 - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 43\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is read-only.\r\n" + printf "HTTP/1.1 503 Service Unavailable\r\n" + printf "Content-Type: text/plain\r\n" + printf "Connection: close\r\n" + printf "Content-Length: 43\r\n" + printf "\r\n" + printf "Percona XtraDB Cluster Node is read-only.\r\n" sleep 0.1 exit 1 fi fi # Percona XtraDB Cluster node local state is 'Synced' => return HTTP 200 # Shell return-code is 0 - echo -en "HTTP/1.1 200 OK\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 40\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is synced.\r\n" + printf "HTTP/1.1 200 OK\r\n" + printf "Content-Type: text/plain\r\n" + printf "Connection: close\r\n" + printf "Content-Length: 40\r\n" + printf "\r\n" + printf "Percona XtraDB Cluster Node is synced.\r\n" sleep 0.1 exit 0 else # Percona XtraDB Cluster node local state is not 'Synced' => return HTTP 503 # Shell return-code is 1 - echo -en "HTTP/1.1 503 Service Unavailable\r\n" - echo -en "Content-Type: text/plain\r\n" - echo -en "Connection: close\r\n" - echo -en "Content-Length: 44\r\n" - echo -en "\r\n" - echo -en "Percona XtraDB Cluster Node is not synced.\r\n" + printf "HTTP/1.1 503 Service Unavailable\r\n" + printf "Content-Type: text/plain\r\n" + printf "Connection: close\r\n" + printf "Content-Length: 44\r\n" + printf "\r\n" + printf "Percona XtraDB Cluster Node is not synced.\r\n" sleep 0.1 exit 1 fi