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