From 77d0e434508f7dc11aae091f2dbb05c168e0e22e Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@unibe.ch>
Date: Tue, 6 Jun 2023 17:14:02 +0200
Subject: [PATCH] mysqlserver - some shell fixes

---
 check_mysqlserver | 57 ++++++++++++++++++++++-------------------------
 1 file changed, 27 insertions(+), 30 deletions(-)

diff --git a/check_mysqlserver b/check_mysqlserver
index 343f961..de7b3b9 100755
--- a/check_mysqlserver
+++ b/check_mysqlserver
@@ -1,8 +1,6 @@
 #!/bin/bash
 # ======================================================================
 #
-# !!! WORK IN PROGRESS !!! DO NOT USE YET !!!
-#
 # Check MYSQL / MARIADB SERVER
 #
 # requirements:
@@ -20,19 +18,17 @@
 # 2020-08-xx  v0.0  <axel.hahn@iml.unibe.ch>
 # 2021-06-08  v0.1  <axel.hahn@iml.unibe.ch>  update HOME .. better implement a param and ENV var
 # 2021-06-24  v0.2  <axel.hahn@iml.unibe.ch>  check if query cache is enabled as a shared function
+# 2023-06-06  v0.3  <axel.hahn@unibe.ch>      some shell fixes
 # ======================================================================
 
 
-. `dirname $0`/inc_pluginfunctions
-_version="0.2"
+. $( dirname $0 )/inc_pluginfunctions
+
+self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] )
+self_APPVERSION=0.3
 
 # --- set HOME
-# HOME=/etc/icinga2-passive-client
 HOME=/etc/icingaclient
-# cd $( dirname $0)
-# cd ..
-# HOME=$( pwd ); export HOME
-# cd - >/dev/null
 
 # --- other vars...
 cfgfile=$HOME/.my.cnf
@@ -89,7 +85,7 @@ function _install(){
     echo "- creating config file $cfgfile ... "
     cat  >$cfgfile <<EOF
 #
-# generated on `date`
+# generated on $(date)
 #
 [client]
 user=$myuser
@@ -106,17 +102,18 @@ EOF
 
 # show usage
 function _usage(){
+    local _self=$( basename $0 )
     cat <<EOH
 ______________________________________________________________________
 
-CHECK MYSQL SERVER :: v${_version}
+${self_APPNAME} :: v${self_APPVERSION}
 
 (c) Institute for Medical Education - University of Bern
 Licence: GNU GPL 3
 ______________________________________________________________________
 
 USAGE:
-  `basename $0` [OPTIONS] -m METHOD
+  $_self [OPTIONS] -m METHOD
 
 OPTIONS:
   -h  this help
@@ -133,8 +130,8 @@ PARAMETERS:
       qcache-hits     query cache efficiency: cached vs non cached and inserted
 
 EXAMPLES:
-  `basename $0` -i
-  `basename $0` -m commands
+  $_self -i
+  $_self -m commands
 
 EOH
 }
@@ -146,8 +143,8 @@ function _mysqlreadvars(){
 
 function _mysqlgetvar() {
     local sVarname=$1
-    lastvalue=`grep "^$sVarname[^_a-z]" ${datafile} | awk '{ print $2 }'`
-    echo $lastvalue
+    lastvalue=$(grep "^${sVarname}[^_a-z]" ${datafile} | awk '{ print $2 }')
+    echo "$lastvalue"
 }
 # get a value from mysql status output
 # param  string  variable name
@@ -160,20 +157,20 @@ function _mysqlrendervar() {
     local sFloat=$4
 
     # local iValue=`grep "^$sVarname[^_a-z]" ${datafile} | awk '{ print $2 }'`
-    local iValue=`_mysqlgetvar "$sVarname"`
+    local iValue=$(_mysqlgetvar "$sVarname")
     if [ "$iValue" = "" ]; then
             ph.abort "no value for ${sVarname}"
     fi
 
     # get label for perfdata
-    local sLabel=`echo ${sVarname} | sed "s#^${sRemove}##g"`
+    local sLabel=$(echo ${sVarname} | sed "s#^${sRemove}##g")
     if [ ! -z $sDeltaUnit ]; then
-        local iSpeed=` ph.perfdeltaspeed "mysql-${sVarname}" ${iValue} $sDeltaUnit $sFloat`
-        out=$out`printf "%25s: %10s %s \n" "${sLabel}" "${iValue}" "... delta = ${iSpeed} per $sDeltaUnit${NL}"`
+        local iSpeed=$( ph.perfdeltaspeed "mysql-${sVarname}" ${iValue} $sDeltaUnit $sFloat)
+        out=$out$(printf "%25s: %10s %s \n" "${sLabel}" "${iValue}" "... delta = ${iSpeed} per $sDeltaUnit${NL}")
         ph.perfadd "${sLabel}"   "${iSpeed}"
         lastvalue=$iSpeed
     else
-        out=${out}`printf "%25s: %10s \n" "${sLabel}" "${iValue}${NL}"`
+        out=${out}$(printf "%25s: %10s \n" "${sLabel}" "${iValue}${NL}")
         ph.perfadd "${sLabel}" "${iValue}"
         lastvalue=$iValue
     fi
@@ -182,8 +179,8 @@ function _mysqlrendervar() {
 
 function _mysqlrenderdelta() {
     local deltaUnit=$3
-    test -z $deltaUnit && deltaUnit="sec"
-    _mysqlrendervar "$1" "$2" $deltaUnit $4
+    test -z "$deltaUnit" && deltaUnit="sec"
+    _mysqlrendervar "$1" "$2" "$deltaUnit" "$4"
 }
 
 # helper function for caching checks
@@ -204,9 +201,9 @@ function _verify_cache(){
 # MAIN
 # ----------------------------------------------------------------------
 
-bOptInstall=`   ph.hasParamoption "i" "$@"`
-bOptUninstall=` ph.hasParamoption "u" "$@"`
-bOptHelp=`      ph.hasParamoption "h" "$@"`
+bOptInstall=$(   ph.hasParamoption "i" "$@")
+bOptUninstall=$( ph.hasParamoption "u" "$@")
+bOptHelp=$(      ph.hasParamoption "h" "$@")
 
 if [ $bOptHelp -eq 1 -o $# -lt 1 ]; then
     _usage
@@ -247,7 +244,7 @@ fi
 # --- check installation
 grep $myuser $cfgfile >/dev/null 2>/dev/null 
 if [ $? -ne 0 ]; then
-    ph.abort "MYSQL access not possible yet. You need to install the monitoring user first: as root execute `basename $0` -i"
+    ph.abort "MYSQL access not possible yet. You need to install the monitoring user first: as root execute $(basename $0) -i"
 fi
 
 # ----------------------------------------------------------------------
@@ -260,10 +257,10 @@ if [ $? -ne 0 ]; then
 fi
 
 # --- set optional limits
-typeset -i iWarnLimit=`     ph.getValueWithParam 0 w "$@"`
-typeset -i iCriticalLimit=` ph.getValueWithParam 0 c "$@"`
+typeset -i iWarnLimit=$(     ph.getValueWithParam 0 w "$@")
+typeset -i iCriticalLimit=$( ph.getValueWithParam 0 c "$@")
 
-sMode=`ph.getValueWithParam '' m "$@"`
+sMode=$(ph.getValueWithParam '' m "$@")
 
 case "${sMode}" in
 
-- 
GitLab