diff --git a/README.md b/README.md index 071f6e6..d8412cc 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,9 @@ Additionally, there may be bundles for display or notification plugins, e.g.: /opt/hc/bin/check_health.sh --report /opt/hc/bin/check_health.sh --report --last /opt/hc/bin/check_health.sh --report --today +/opt/hc/bin/check_health.sh --report --newer=20180101 /opt/hc/bin/check_health.sh --report --id=20160704154001 --detail + ``` * **Alerting** on failed health checks: diff --git a/sources/bin/check_health.sh b/sources/bin/check_health.sh index 28798a4..123b072 100644 --- a/sources/bin/check_health.sh +++ b/sources/bin/check_health.sh @@ -544,11 +544,11 @@ cat << EOT Execute/report simple health checks (HC) on UNIX hosts. Syntax: ${SCRIPT_DIR}/${SCRIPT_NAME} [--help] | [--help-terse] | [--version] | - [--list=] | [--list-core] | [--fix-symlinks] | [--show-stats] | (--archive-all | --disable-all | --enable-all) | [--fix-logs [--with-history]] | + [--list=] | [--list-core] | [--list-include] | [--fix-symlinks] | [--show-stats] | (--archive-all | --disable-all | --enable-all) | [--fix-logs [--with-history]] | (--check-host | ((--archive | --check | --enable | --disable | --run [--timeout=] | --show) --hc= [--config-file=] [hc-args="])) [--display=] ([--debug] [--debug-level=]) [--log-healthy] [--no-monitor] [--no-log] [--no-lock] [--flip-rc] [--notify=] [--mail-to=] [--sms-to= --sms-provider=] - [--report= ( ([--last] | [--today]) | ([(--older|--newer)=] [--reverse] [--id= [--detail]] [--with-history]) ) ] + [--report= [--with-history] ( ([--last] | [--today]) | [(--older|--newer)=] | [--reverse] [--id= [--detail]] )] EOT @@ -586,6 +586,7 @@ Parameters: - whether the HC plugin requires a configuration file in ${CONFIG_DIR} - whether the HC plugin is scheduled by cron --list-core : show the available core plugins (mail,SMS,...) +--list-include : show the available includes/libraries --log-healthy : log/show also passed health checks. By default this is off when the plugin support this feature. (can be overridden by --no-log to disable all logging) --mail-to : list of e-mail address(es) to which an e-mail alert will be send to [requires mail core plugin] @@ -924,6 +925,16 @@ do list_core exit 0 ;; + -list-include|--list-include) + read_config + check_config + build_fpath + check_core + check_shell + check_user + list_include + exit 0 + ;; -log-healthy|--log-healthy) ARG_LOG_HEALTHY=1 ;; diff --git a/sources/lib/core/include_core.sh b/sources/lib/core/include_core.sh index 0afde65..83e2408 100644 --- a/sources/lib/core/include_core.sh +++ b/sources/lib/core/include_core.sh @@ -23,6 +23,20 @@ # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** +# ----------------------------------------------------------------------------- +# @(#) FUNCTION: version_include_core() +# DOES: dummy function for version placeholder +# EXPECTS: n/a +# RETURNS: 0 +function version_include_core +{ +typeset _VERSION="2019-03-16" # YYYY-MM-DD + +print "INFO: $0: ${_VERSION#version_*}" + +return 0 +} + # ----------------------------------------------------------------------------- # @(#) FUNCTION: archive_hc() # DOES: archive log entries for a given HC @@ -1425,7 +1439,6 @@ return ${CRON_COUNT} function list_core { (( ARG_DEBUG > 0 && ARG_DEBUG_LEVEL > 0 )) && set "${DEBUG_OPTS}" -typeset FACTION="${1}" typeset FCONFIG="" typeset FDIR="" typeset FNAME="" @@ -1435,17 +1448,14 @@ typeset FSTATE="enabled" # default typeset FFILE="" typeset FSCRIPT="" typeset HAS_FCONFIG=0 -typeset HC_VERSION="" # print header -if [[ "${FACTION}" != "list" ]] -then - # shellcheck disable=SC1117 - printf "%-30s\t%-8s\t%s\t\t%s\n" "Core plugin" "State" "Version" "Config?" - # shellcheck disable=SC2183,SC1117 - printf "%80s\n" | tr ' ' - -fi -print "${FPATH}" | tr ':' '\n' | grep "core$" | sort 2>/dev/null | while read -r FDIR +# shellcheck disable=SC1117 +printf "%-30s\t%-8s\t%s\t\t%s\n" "Core plugin" "State" "Version" "Config?" +# shellcheck disable=SC2183,SC1117 +printf "%80s\n" | tr ' ' - + +print "${FPATH}" | tr ':' '\n' 2>/dev/null | grep "core$" | sort 2>/dev/null | while read -r FDIR do # exclude core helper librar(y|ies) # shellcheck disable=SC2010 @@ -1489,28 +1499,25 @@ do done # dead link detection -if [[ "${FACTION}" != "list" ]] -then - print - print -n "Dead links: " - print "${FPATH}" | tr ':' '\n' | grep "core$" | while read -r FDIR +print +print -n "Dead links: " +print "${FPATH}" | tr ':' '\n' 2>/dev/null | grep "core$" 2>/dev/null | while read -r FDIR +do + # do not use 'find -type l' here! + # shellcheck disable=SC2010,SC1117 + ls ${FDIR} 2>/dev/null | grep -v "\." 2>/dev/null | while read -r FFILE do - # do not use 'find -type l' here! - # shellcheck disable=SC2010,SC1117 - ls ${FDIR} 2>/dev/null | grep -v "\." | while read -r FFILE - do - if [[ -h "${FDIR}/${FFILE}" ]] && [[ ! -f "${FDIR}/${FFILE}" ]] - then - printf "%s " ${FFILE##*/} - fi - done + if [[ -h "${FDIR}/${FFILE}" ]] && [[ ! -f "${FDIR}/${FFILE}" ]] + then + printf "%s " ${FFILE##*/} + fi done - print +done +print - # show FPATH - print - print "current FPATH: ${FPATH}" -fi +# show FPATH +print +print "current FPATH: ${FPATH}" return 0 } @@ -1539,7 +1546,6 @@ typeset FSCRIPT="" typeset HAS_FCONFIG=0 typeset HAS_FHEALTHY="" typeset DISABLE_FFILE="" -typeset HC_VERSION="" # build search needle if [[ -z "${ARG_LIST}" ]] @@ -1663,11 +1669,11 @@ if [[ "${FACTION}" != "list" ]] then print print -n "Dead links: " - print "${FPATH}" | tr ':' '\n' | grep -v "core" | while read -r FDIR + print "${FPATH}" | tr ':' '\n' 2>/dev/null | grep -v "core" 2>/dev/null | while read -r FDIR do # do not use 'find -type l' here! # shellcheck disable=SC2010,SC1117 - ls ${FDIR} 2>/dev/null | grep -v "\." | while read -r FFILE + ls ${FDIR} 2>/dev/null | grep -v "\." 2>/dev/null | while read -r FFILE do if [[ -h "${FDIR}/${FFILE}" ]] && [[ ! -f "${FDIR}/${FFILE}" ]] then @@ -1694,6 +1700,88 @@ fi return 0 } +# ----------------------------------------------------------------------------- +# @(#) FUNCTION: list_include() +# DOES: find HC include files (libraries) +# EXPECTS: n/a +# RETURNS: 0 +# REQUIRES: n/a +function list_include +{ +(( ARG_DEBUG > 0 && ARG_DEBUG_LEVEL > 0 )) && set "${DEBUG_OPTS}" +typeset FDIR="" +typeset FNAME="" +typeset FVERSION="" +typeset FFILE="" +typeset FSTATE="enabled" # default +typeset FSCRIPT="" +typeset FFUNCTIONS="" +typeset FFUNCTION="" + +# print header +# shellcheck disable=SC1117 +printf "%-20s\t%-8s\t%12s\t\t%s\n" "Include/libary" "State" "Version" "Functions" +# shellcheck disable=SC2183,SC1117 +printf "%100s\n" | tr ' ' - + +print "${FPATH}" | tr ':' '\n' 2>/dev/null | grep "core$" 2>/dev/null | sort 2>/dev/null | while read -r FDIR +do + # exclude core helper librar(y|ies) + # shellcheck disable=SC2010 + ls -1 ${FDIR}/*.sh 2>/dev/null | grep "include_" 2>/dev/null | sort 2>/dev/null | while read -r FFILE + do + # cache script contents in memory + FSCRIPT=$(<${FFILE}) + + # find function name + FNAME=$(print -R "${FSCRIPT}" | grep -E -e "^function[[:space:]].*version_" 2>/dev/null) + # look for version string (cut off comments but don't use [:space:] in tr) + FVERSION=$(print -R "${FSCRIPT}" | grep '^typeset _VERSION=' 2>/dev/null |\ + awk 'match($0,/[0-9]+-[0-9]+-[0-9]+/){print substr($0, RSTART, RLENGTH)}' 2>/dev/null) + + # get list of functions + FFUNCTIONS=$(print -R "${FSCRIPT}" | grep -E -e "^function[[:space:]]+" 2>/dev/null | awk '{ print $2}' 2>/dev/null) + + # check state (only for unlinked) + [[ -h ${FFILE%%.*} ]] || FSTATE="unlinked" + + # show results + # shellcheck disable=SC1117 + printf "%-20s\t%-8s\t%12s\n" \ + "${FNAME#function version_*}" \ + "${FSTATE}" \ + "${FVERSION#typeset _VERSION=*}" + print "${FFUNCTIONS}" | while read -r FFUNCTION + do + printf "%64s%s\n" "" "${FFUNCTION}" + done + done +done + +# dead link detection +print +print -n "Dead links: " +print "${FPATH}" | tr ':' '\n' 2>/dev/null | grep "core$" 2>/dev/null | while read -r FDIR +do + # do not use 'find -type l' here! + # shellcheck disable=SC2010,SC1117 + ls ${FDIR} 2>/dev/null | grep -v "\." 2>/dev/null | while read -r FFILE + do + if [[ -h "${FDIR}/${FFILE}" ]] && [[ ! -f "${FDIR}/${FFILE}" ]] + then + printf "%s " ${FFILE##*/} + fi + done +done +print + +# show FPATH +print +print "current FPATH: ${FPATH}" + +return 0 +} + # ----------------------------------------------------------------------------- # @(#) FUNCTION: log() # DOES: handle messages diff --git a/sources/lib/core/include_data.sh b/sources/lib/core/include_data.sh index 1c10c6d..9c6381f 100644 --- a/sources/lib/core/include_data.sh +++ b/sources/lib/core/include_data.sh @@ -23,6 +23,20 @@ # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** +# ----------------------------------------------------------------------------- +# @(#) FUNCTION: version_include_core() +# DOES: dummy function for version placeholder +# EXPECTS: n/a +# RETURNS: 0 +function version_include_data +{ +typeset _VERSION="2019-03-16" # YYYY-MM-DD + +print "INFO: $0: ${_VERSION#version_*}" + +return 0 +} + # ----------------------------------------------------------------------------- # @(#) FUNCTION: data_get_lvalue_from_config() # DOES: get an lvalue from the configuration file diff --git a/sources/lib/core/include_os.sh b/sources/lib/core/include_os.sh index 90ad57c..bd916ea 100644 --- a/sources/lib/core/include_os.sh +++ b/sources/lib/core/include_os.sh @@ -23,6 +23,20 @@ # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** +# ----------------------------------------------------------------------------- +# @(#) FUNCTION: version_include_core() +# DOES: dummy function for version placeholder +# EXPECTS: n/a +# RETURNS: 0 +function version_include_os +{ +typeset _VERSION="2019-03-16" # YYYY-MM-DD + +print "INFO: $0: ${_VERSION#version_*}" + +return 0 +} + # ----------------------------------------------------------------------------- # @(#) FUNCTION: linux_get_distro() # DOES: get Linux distribution name & version, sets $LINUX_DISTRO & $LINUX_RELEASE @@ -128,7 +142,7 @@ check_platform 'Linux' || { return 1 } -_CRM_BIN="$(which crm 2>/dev/null)" +_CRM_BIN="$(command -v crm 2>/dev/null)" if [[ -x ${_CRM_BIN} && -n "${_CRM_BIN}" ]] then # check for active @@ -164,7 +178,7 @@ check_platform 'Linux' || { return 1 } -_DOCKER_BIN="$(which docker 2>/dev/null)" +_DOCKER_BIN="$(command -v docker 2>/dev/null)" if [[ -x ${_DOCKER_BIN} && -n "${_DOCKER_BIN}" ]] then # check for active @@ -200,7 +214,7 @@ check_platform 'Linux' || { return 1 } -_NMCLI_BIN="$(which nmcli 2>/dev/null)" +_NMCLI_BIN="$(command -v nmcli 2>/dev/null)" if [[ -x ${_NMCLI_BIN} && -n "${_NMCLI_BIN}" ]] then # check for active diff --git a/sources/lib/core/notify_mail.sh b/sources/lib/core/notify_mail.sh index 9d2f449..f780500 100644 --- a/sources/lib/core/notify_mail.sh +++ b/sources/lib/core/notify_mail.sh @@ -80,13 +80,13 @@ _HC_STDERR_LOG_SHORT="${HC_STDERR_LOG##*/}" case "${OS_NAME}" in "Linux") # prefer mutt :-) - _MUTT_BIN="$(which mutt 2>/dev/null)" + _MUTT_BIN="$(command -v mutt 2>/dev/null)" if [[ -x ${_MUTT_BIN} ]] && [[ -n "${_MUTT_BIN}" ]] then _MAIL_METHOD="mutt" else # prefer mailx next - _MAILX_BIN="$(which mailx 2>/dev/null)" + _MAILX_BIN="$(command -v mailx 2>/dev/null)" if [[ -x ${_MAILX_BIN} ]] && [[ -n "${_MAILX_BIN}" ]] then _MAIL_METHOD="mailx" @@ -103,13 +103,13 @@ esac if [[ "${_MAIL_METHOD}" = "sendmail" ]] then # find 'sendmail' - _SENDMAIL_BIN="$(which sendmail 2>/dev/null)" + _SENDMAIL_BIN="$(command -v sendmail 2>/dev/null)" if [[ ! -x ${_SENDMAIL_BIN} ]] || [[ -z "${_SENDMAIL_BIN}" ]] then die "unable to send e-mail - sendmail is not installed here" fi # find 'uuencode' - _UUENCODE_BIN="$(which uuencode 2>/dev/null)" + _UUENCODE_BIN="$(command -v uuencode 2>/dev/null)" if [[ ! -x ${_UUENCODE_BIN} ]] || [[ -z "${_UUENCODE_BIN}" ]] then die "unable to send e-mail - uuencode is not installed here" diff --git a/sources/lib/core/notify_sms.sh b/sources/lib/core/notify_sms.sh index 7201c85..92d28b3 100644 --- a/sources/lib/core/notify_sms.sh +++ b/sources/lib/core/notify_sms.sh @@ -100,7 +100,7 @@ case "${ARG_SMS_PROVIDER}" in *kapow*|*KAPOW*|*Kapow*) # KAPOW (https://www.kapow.co.uk/) # find 'curl' - _CURL_BIN="$(which curl 2>/dev/null)" + _CURL_BIN="$(command -v curl 2>/dev/null)" if [[ -x ${_CURL_BIN} ]] && [[ -n "${_CURL_BIN}" ]] then _SMS_TEXT=$(print "${_FROM_MSG}: HC ${_SMS_HC} failed, FAIL_ID=${_SMS_FAIL_ID}" | data_encode_url) diff --git a/sources/lib/core/report_std.sh b/sources/lib/core/report_std.sh index f0d6e64..d7289b6 100644 --- a/sources/lib/core/report_std.sh +++ b/sources/lib/core/report_std.sh @@ -30,7 +30,7 @@ function report_std { # ------------------------- CONFIGURATION starts here ------------------------- -typeset _VERSION="2019-03-18" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="AIX,HP-UX,Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- diff --git a/sources/lib/platform/aix/check_aix_file_change.sh b/sources/lib/platform/aix/check_aix_file_change.sh index defd768..f75f83e 100644 --- a/sources/lib/platform/aix/check_aix_file_change.sh +++ b/sources/lib/platform/aix/check_aix_file_change.sh @@ -28,6 +28,7 @@ # @(#) 2018-11-18: do not trap on signal 0 [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -37,7 +38,7 @@ function check_aix_file_change { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -140,9 +141,9 @@ else fi # check for checksum tools -_OPENSSL_BIN="$(which openssl 2>>${HC_STDERR_LOG})" +_OPENSSL_BIN="$(command -v openssl 2>>${HC_STDERR_LOG})" [[ -x ${_OPENSSL_BIN} && -n "${_OPENSSL_BIN}" ]] && _HAS_OPENSSL=1 -_CKSUM_BIN="$(which cksum 2>>${HC_STDERR_LOG})" +_CKSUM_BIN="$(command -v cksum 2>>${HC_STDERR_LOG})" [[ -x ${_CKSUM_BIN} && -n "${_CKSUM_BIN}" ]] && _HAS_CKSUM=1 # prefer openssl (for sha256) if (( _HAS_OPENSSL == 1 )) diff --git a/sources/lib/platform/exadata/check_exadata_zfs_logs.sh b/sources/lib/platform/exadata/check_exadata_zfs_logs.sh index 46e23b1..1b85399 100644 --- a/sources/lib/platform/exadata/check_exadata_zfs_logs.sh +++ b/sources/lib/platform/exadata/check_exadata_zfs_logs.sh @@ -24,6 +24,7 @@ # # @(#) HISTORY: # @(#) 2019-02-18: initial version [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -33,7 +34,7 @@ function check_exadata_zfs_logs { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-02-18" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -134,7 +135,7 @@ else fi # check ssh -_SSH_BIN="$(which ssh 2>>${HC_STDERR_LOG})" +_SSH_BIN="$(command -v ssh 2>>${HC_STDERR_LOG})" if [[ ! -x ${_SSH_BIN} || -z "${_SSH_BIN}" ]] then warn "SSH is not installed here" diff --git a/sources/lib/platform/exadata/check_exadata_zfs_services.sh b/sources/lib/platform/exadata/check_exadata_zfs_services.sh index a4913e1..1c04e2a 100644 --- a/sources/lib/platform/exadata/check_exadata_zfs_services.sh +++ b/sources/lib/platform/exadata/check_exadata_zfs_services.sh @@ -24,6 +24,7 @@ # # @(#) HISTORY: # @(#) 2019-02-18: initial version [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -33,7 +34,7 @@ function check_exadata_zfs_services { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-02-18" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # usage query script -- DO NOT CHANGE -- # svc1:online @@ -137,7 +138,7 @@ else fi # check ssh -_SSH_BIN="$(which ssh 2>>${HC_STDERR_LOG})" +_SSH_BIN="$(command -v ssh 2>>${HC_STDERR_LOG})" if [[ ! -x ${_SSH_BIN} || -z "${_SSH_BIN}" ]] then warn "SSH is not installed here" diff --git a/sources/lib/platform/exadata/check_exadata_zfs_share_replication.sh b/sources/lib/platform/exadata/check_exadata_zfs_share_replication.sh index 02e975b..ff9f690 100644 --- a/sources/lib/platform/exadata/check_exadata_zfs_share_replication.sh +++ b/sources/lib/platform/exadata/check_exadata_zfs_share_replication.sh @@ -25,6 +25,7 @@ # @(#) HISTORY: # @(#) 2019-02-18: initial version [Patrick Van der Veken] # @(#) 2019-02-19: fix for replication value [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -34,7 +35,7 @@ function check_exadata_zfs_share_replication { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-02-19" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # replication query script -- DO NOT CHANGE -- # prj1/share1:true:idle:success:111 @@ -148,7 +149,7 @@ else fi # check ssh -_SSH_BIN="$(which ssh 2>>${HC_STDERR_LOG})" +_SSH_BIN="$(command -v ssh 2>>${HC_STDERR_LOG})" if [[ ! -x ${_SSH_BIN} || -z "${_SSH_BIN}" ]] then warn "SSH is not installed here" diff --git a/sources/lib/platform/exadata/check_exadata_zfs_share_usage.sh b/sources/lib/platform/exadata/check_exadata_zfs_share_usage.sh index 176c800..76d8996 100644 --- a/sources/lib/platform/exadata/check_exadata_zfs_share_usage.sh +++ b/sources/lib/platform/exadata/check_exadata_zfs_share_usage.sh @@ -24,6 +24,7 @@ # # @(#) HISTORY: # @(#) 2019-02-18: initial version [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -33,7 +34,7 @@ function check_exadata_zfs_share_usage { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-02-18" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # usage query script -- DO NOT CHANGE -- # prj1:share1:16 @@ -155,7 +156,7 @@ else fi # check ssh -_SSH_BIN="$(which ssh 2>>${HC_STDERR_LOG})" +_SSH_BIN="$(command -v ssh 2>>${HC_STDERR_LOG})" if [[ ! -x ${_SSH_BIN} || -z "${_SSH_BIN}" ]] then warn "SSH is not installed here" diff --git a/sources/lib/platform/hp-ux/check_hpux_cron_status.sh b/sources/lib/platform/hp-ux/check_hpux_cron_status.sh index 8358171..a1af81b 100644 --- a/sources/lib/platform/hp-ux/check_hpux_cron_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_cron_status.sh @@ -24,6 +24,7 @@ # @(#) HISTORY: # @(#) 2018-02-08: initial version [Patrick Van der Veken]ยต # @(#) 2018-02-13: fix to avoid log check if cron is not active [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -34,7 +35,7 @@ function check_hpux_cron_status # ------------------------- CONFIGURATION starts here ------------------------- typeset _CRON_LOG_FILE="/var/adm/cron/log" typeset _WAIT_TIME=10 -typeset _VERSION="2019-02-13" # YYYY-MM-DD +typeset _VERSION="2019-02-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -98,7 +99,7 @@ then fi # ---- log state ---- -_AT_BIN="$(which at 2>>${HC_STDERR_LOG})" +_AT_BIN="$(command -v at 2>>${HC_STDERR_LOG})" if [[ -x ${_AT_BIN} && -n "${_AT_BIN}" ]] then # start test job diff --git a/sources/lib/platform/hp-ux/check_hpux_file_change.sh b/sources/lib/platform/hp-ux/check_hpux_file_change.sh index 88da27d..bbb8e31 100644 --- a/sources/lib/platform/hp-ux/check_hpux_file_change.sh +++ b/sources/lib/platform/hp-ux/check_hpux_file_change.sh @@ -28,6 +28,7 @@ # @(#) 2018-11-18: do not trap on signal 0 [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -37,7 +38,7 @@ function check_hpux_file_change { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -140,9 +141,9 @@ else fi # check for checksum tools -_OPENSSL_BIN="$(which openssl 2>>${HC_STDERR_LOG})" +_OPENSSL_BIN="$(command -v openssl 2>>${HC_STDERR_LOG})" [[ -x ${_OPENSSL_BIN} && -n "${_OPENSSL_BIN}" ]] && _HAS_OPENSSL=1 -_CKSUM_BIN="$(which cksum 2>>${HC_STDERR_LOG})" +_CKSUM_BIN="$(command -v cksum 2>>${HC_STDERR_LOG})" [[ -x ${_CKSUM_BIN} && -n "${_CKSUM_BIN}" ]] && _HAS_CKSUM=1 # prefer openssl (for sha256) if (( _HAS_OPENSSL == 1 )) diff --git a/sources/lib/platform/hp-ux/check_hpux_httpd_status.sh b/sources/lib/platform/hp-ux/check_hpux_httpd_status.sh index 93d74f9..3817308 100644 --- a/sources/lib/platform/hp-ux/check_hpux_httpd_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_httpd_status.sh @@ -26,6 +26,7 @@ # @(#) 2018-10-28: fixed (linter) errors [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -35,7 +36,7 @@ function check_hpux_httpd_status { # ------------------------- CONFIGURATION starts here ------------------------- typeset _HTTPD_PID_FILE="/var/run/httpd/httpd.pid" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -117,7 +118,7 @@ then fi # ---- config state ---- -_HTTPD_BIN="$(which httpd 2>>${HC_STDERR_LOG})" +_HTTPD_BIN="$(command -v httpd 2>>${HC_STDERR_LOG})" if [[ -x ${_HTTPD_BIN} && -n "${_HTTPD_BIN}" ]] then # validate main configuration diff --git a/sources/lib/platform/hp-ux/check_hpux_named_status.sh b/sources/lib/platform/hp-ux/check_hpux_named_status.sh index 31c09f4..cae3211 100644 --- a/sources/lib/platform/hp-ux/check_hpux_named_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_named_status.sh @@ -25,6 +25,7 @@ # @(#) 2017-01-07: initial version [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -34,7 +35,7 @@ function check_hpux_named_status { # ------------------------- CONFIGURATION starts here ------------------------- typeset _NAMED_PID_FILE="/var/run/named/named.pid" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -116,7 +117,7 @@ then fi # ---- config state ---- -_NAMED_CHECKCONF_BIN="$(which named-checkconf 2>>${HC_STDERR_LOG})" +_NAMED_CHECKCONF_BIN="$(command -v named-checkconf 2>>${HC_STDERR_LOG})" if [[ -x ${_NAMED_CHECKCONF_BIN} && -n "${_NAMED_CHECKCONF_BIN}" ]] then # validate main configuration and test load zones diff --git a/sources/lib/platform/hp-ux/check_hpux_postfix_status.sh b/sources/lib/platform/hp-ux/check_hpux_postfix_status.sh index aa0bca7..c509746 100644 --- a/sources/lib/platform/hp-ux/check_hpux_postfix_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_postfix_status.sh @@ -25,6 +25,7 @@ # @(#) 2016-12-01: initial version [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -71,7 +72,7 @@ else log "not logging/showing passed health checks" fi -_POSTFIX_BIN="$(which postfix 2>>${HC_STDERR_LOG})" +_POSTFIX_BIN="$(command -v postfix 2>>${HC_STDERR_LOG})" if [[ -x ${_POSTFIX_BIN} && -n "${_POSTFIX_BIN}" ]] then ${_POSTFIX_BIN} status >>${HC_STDOUT_LOG} 2>>${HC_STDERR_LOG} diff --git a/sources/lib/platform/hp-ux/check_hpux_syslogd_status.sh b/sources/lib/platform/hp-ux/check_hpux_syslogd_status.sh index 40ec490..1bacdda 100644 --- a/sources/lib/platform/hp-ux/check_hpux_syslogd_status.sh +++ b/sources/lib/platform/hp-ux/check_hpux_syslogd_status.sh @@ -25,6 +25,7 @@ # @(#) 2018-02-08: initial version [Patrick Van der Veken] # @(#) 2018-02-13: fix to avoid log check if syslogd is not active [Patrick Van der Veken] # @(#) 2019-03-09: text updates [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -35,7 +36,7 @@ function check_hpux_syslogd_status # ------------------------- CONFIGURATION starts here ------------------------- typeset _SYSLOGD_PID_FILE="/var/run/syslog.pid" typeset _SYSLOGD_LOG_FILE="/var/adm/syslog.log" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -120,7 +121,7 @@ then fi # ---- log state ---- -_LOGGER_BIN="$(which logger 2>>${HC_STDERR_LOG})" +_LOGGER_BIN="$(command -v logger 2>>${HC_STDERR_LOG})" if [[ -x ${_LOGGER_BIN} && -n "${_LOGGER_BIN}" ]] then # write test entry diff --git a/sources/lib/platform/linux/check_linux_burp_backup.sh b/sources/lib/platform/linux/check_linux_burp_backup.sh index 61eba69..761a714 100644 --- a/sources/lib/platform/linux/check_linux_burp_backup.sh +++ b/sources/lib/platform/linux/check_linux_burp_backup.sh @@ -33,6 +33,7 @@ # @(#) 2019-03-09: changed format of stanzas in configuration file & # @(#) added support for --log-healthy [Patrick Van der Veken] # @(#) 2019-03-10: fix for burp v2 +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -44,7 +45,7 @@ function check_linux_burp_backup typeset _BURP_SERVER_CONFIG_FILE="/etc/burp/burp-server.conf" typeset _BURP_CLIENT_CONFIG_FILE="/etc/burp/burp.conf" typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-03-10" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -129,7 +130,7 @@ then fi # find burp -_BURP_BIN="$(which burp 2>/dev/null)" +_BURP_BIN="$(command -v burp 2>/dev/null)" if [[ ! -x ${_BURP_BIN} || -z "${_BURP_BIN}" ]] then warn "burp is not installed here" diff --git a/sources/lib/platform/linux/check_linux_es_status.sh b/sources/lib/platform/linux/check_linux_es_status.sh index 8514954..0bbe7bb 100644 --- a/sources/lib/platform/linux/check_linux_es_status.sh +++ b/sources/lib/platform/linux/check_linux_es_status.sh @@ -23,6 +23,7 @@ # # @(#) HISTORY: # @(#) 2019-03-09: initial version [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -32,7 +33,7 @@ function check_linux_es_status { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -103,7 +104,7 @@ else fi # check curl -_CURL_BIN="$(which curl 2>>${HC_STDERR_LOG})" +_CURL_BIN="$(command -v curl 2>>${HC_STDERR_LOG})" if [[ ! -x ${_CURL_BIN} || -z "${_CURL_BIN}" ]] then warn "curl is not installed here" diff --git a/sources/lib/platform/linux/check_linux_file_change.sh b/sources/lib/platform/linux/check_linux_file_change.sh index fb6f2a4..e3172d9 100644 --- a/sources/lib/platform/linux/check_linux_file_change.sh +++ b/sources/lib/platform/linux/check_linux_file_change.sh @@ -29,6 +29,7 @@ # @(#) 2018-11-18: do not trap on signal 0 [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -38,7 +39,7 @@ function check_linux_file_change { # ------------------------- CONFIGURATION starts here ------------------------- typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -141,9 +142,9 @@ else fi # check for checksum tools -_OPENSSL_BIN="$(which openssl 2>>${HC_STDERR_LOG})" +_OPENSSL_BIN="$(command -v openssl 2>>${HC_STDERR_LOG})" [[ -x ${_OPENSSL_BIN} && -n "${_OPENSSL_BIN}" ]] && _HAS_OPENSSL=1 -_CKSUM_BIN="$(which cksum 2>>${HC_STDERR_LOG})" +_CKSUM_BIN="$(command -v cksum 2>>${HC_STDERR_LOG})" [[ -x ${_CKSUM_BIN} && -n "${_CKSUM_BIN}" ]] && _HAS_CKSUM=1 # prefer openssl (for sha256) if (( _HAS_OPENSSL == 1 )) diff --git a/sources/lib/platform/linux/check_linux_httpd_status.sh b/sources/lib/platform/linux/check_linux_httpd_status.sh index 104dcec..9958465 100644 --- a/sources/lib/platform/linux/check_linux_httpd_status.sh +++ b/sources/lib/platform/linux/check_linux_httpd_status.sh @@ -29,6 +29,7 @@ # @(#) 2018-11-18: add linux_has_systemd_service() [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -39,7 +40,7 @@ function check_linux_httpd_status # ------------------------- CONFIGURATION starts here ------------------------- typeset _HTTPD_INIT_SCRIPT="/etc/init.d/httpd" typeset _HTTPD_SYSTEMD_SERVICE="httpd.service" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -139,7 +140,7 @@ then fi # ---- config state ---- -_HTTPD_BIN="$(which httpd 2>>${HC_STDERR_LOG})" +_HTTPD_BIN="$(command -v httpd 2>>${HC_STDERR_LOG})" if [[ -x ${_HTTPD_BIN} && -n "${_HTTPD_BIN}" ]] then # validate main configuration diff --git a/sources/lib/platform/linux/check_linux_mysqld_status.sh b/sources/lib/platform/linux/check_linux_mysqld_status.sh index 25e28db..ced7b88 100644 --- a/sources/lib/platform/linux/check_linux_mysqld_status.sh +++ b/sources/lib/platform/linux/check_linux_mysqld_status.sh @@ -25,6 +25,7 @@ # @(#) HISTORY: # @(#) 2019-02-10: initial version [Patrick Van der Veken] # @(#) 2019-03-09: text files [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -38,7 +39,7 @@ typeset _MYSQLD_INIT_SCRIPT="/etc/init.d/mysqld" typeset _MYSQLD_SYSTEMD_SERVICE="mysqld.service" typeset _MARIADB_INIT_SCRIPT="/etc/init.d/mariadb" typeset _MARIADB_SYSTEMD_SERVICE="mariadb.service" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -181,7 +182,7 @@ else fi # check mysql -_MYSQL_BIN="$(which mysql 2>>${HC_STDERR_LOG})" +_MYSQL_BIN="$(command -v mysql 2>>${HC_STDERR_LOG})" if [[ ! -x ${_MYSQL_BIN} || -z "${_MYSQL_BIN}" ]] then warn "MySQL/mariaDB is not installed here" @@ -265,7 +266,7 @@ fi # ---- table states (ISAM)---- # check mysqlcheck -_MYSQLCHECK_BIN="$(which mysqlcheck 2>>${HC_STDERR_LOG})" +_MYSQLCHECK_BIN="$(command -v mysqlcheck 2>>${HC_STDERR_LOG})" if [[ ! -x ${_MYSQLCHECK_BIN} || -z "${_MYSQLCHECK_BIN}" ]] then warn "could not find {mysqlcheck}, skipping table checks" @@ -278,7 +279,7 @@ then if [[ -z "${_CFG_CHECK_DATABASES}" ]] then # check mysqlshow - _MYSQLSHOW_BIN="$(which mysqlshow 2>>${HC_STDERR_LOG})" + _MYSQLSHOW_BIN="$(command -v mysqlshow 2>>${HC_STDERR_LOG})" if [[ ! -x ${_MYSQLSHOW_BIN} || -z "${_MYSQLSHOW_BIN}" ]] then warn "could not find {mysqlshow}, skipping table checks" @@ -347,7 +348,7 @@ fi # ---- statistics ---- # check mysqladmin -_MYSQLADMIN_BIN="$(which mysqladmin 2>>${HC_STDERR_LOG})" +_MYSQLADMIN_BIN="$(command -v mysqladmin 2>>${HC_STDERR_LOG})" if [[ ! -x ${_MYSQLADMIN_BIN} || -z "${_MYSQLADMIN_BIN}" ]] then warn "could not find {mysqladmin}, skipping statistics gathering" diff --git a/sources/lib/platform/linux/check_linux_named_status.sh b/sources/lib/platform/linux/check_linux_named_status.sh index d9ece14..81b8b75 100644 --- a/sources/lib/platform/linux/check_linux_named_status.sh +++ b/sources/lib/platform/linux/check_linux_named_status.sh @@ -28,6 +28,7 @@ # @(#) 2018-11-18: add linux_has_systemd_service() [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -36,7 +37,7 @@ function check_linux_named_status { # ------------------------- CONFIGURATION starts here ------------------------- -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -150,7 +151,7 @@ then fi # ---- config state ---- -_NAMED_CHECKCONF_BIN="$(which named-checkconf 2>>${HC_STDERR_LOG})" +_NAMED_CHECKCONF_BIN="$(command -v named-checkconf 2>>${HC_STDERR_LOG})" if [[ -x ${_NAMED_CHECKCONF_BIN} && -n "${_NAMED_CHECKCONF_BIN}" ]] then # validate main configuration and test load zones diff --git a/sources/lib/platform/linux/check_linux_postfix_status.sh b/sources/lib/platform/linux/check_linux_postfix_status.sh index d462770..bb05758 100644 --- a/sources/lib/platform/linux/check_linux_postfix_status.sh +++ b/sources/lib/platform/linux/check_linux_postfix_status.sh @@ -29,6 +29,7 @@ # @(#) 2018-11-18: add linux_has_systemd_service() [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-03-09: added support for --log-healthy [Patrick Van der Veken] +# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # ----------------------------------------------------------------------------- # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! #****************************************************************************** @@ -39,7 +40,7 @@ function check_linux_postfix_status # ------------------------- CONFIGURATION starts here ------------------------- typeset _POSTFIX_INIT_SCRIPT="/etc/init.d/postfix" typeset _POSTFIX_SYSTEMD_SERVICE="postfix.service" -typeset _VERSION="2019-03-09" # YYYY-MM-DD +typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match # ------------------------- CONFIGURATION ends here --------------------------- @@ -117,7 +118,7 @@ esac # 2) try the postfix way if (( _RC > 0 )) then - _POSTFIX_BIN="$(which postfix 2>>${HC_STDERR_LOG})" + _POSTFIX_BIN="$(command -v postfix 2>>${HC_STDERR_LOG})" if [[ -x ${_POSTFIX_BIN} && -n "${_POSTFIX_BIN}" ]] then if (( $(${_POSTFIX_BIN} status 2>>${HC_STDERR_LOG} | grep -c -i 'is running' 2>/dev/null) == 0 ))