* Replaced 'which' by 'command -v'

* Added --list-include + added version placeholders to all include_*
files
* Some other fixes
This commit is contained in:
patvdv 2019-03-16 13:00:03 +01:00
parent 79f813434a
commit dc9adb907b
26 changed files with 231 additions and 84 deletions

View File

@ -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:

View File

@ -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=<needle>] | [--list-core] | [--fix-symlinks] | [--show-stats] | (--archive-all | --disable-all | --enable-all) | [--fix-logs [--with-history]] |
[--list=<needle>] | [--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=<secs>] | --show) --hc=<list_of_checks> [--config-file=<configuration_file>] [hc-args="<arg1,arg2=val,arg3">]))
[--display=<method>] ([--debug] [--debug-level=<level>]) [--log-healthy] [--no-monitor] [--no-log] [--no-lock] [--flip-rc]
[--notify=<method_list>] [--mail-to=<address_list>] [--sms-to=<sms_rcpt> --sms-provider=<name>]
[--report=<method> ( ([--last] | [--today]) | ([(--older|--newer)=<date>] [--reverse] [--id=<fail_id> [--detail]] [--with-history]) ) ]
[--report=<method> [--with-history] ( ([--last] | [--today]) | [(--older|--newer)=<date>] | [--reverse] [--id=<fail_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
;;

View File

@ -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
do
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 "\." | 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
printf "%s " ${FFILE##*/}
fi
done
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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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 ---------------------------

View File

@ -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 ))

View File

@ -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"

View File

@ -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"

View File

@ -25,6 +25,7 @@
# @(#) HISTORY:
# @(#) 2019-02-18: initial version [Patrick Van der Veken]
# @(#) 2019-02-19: fix for <unknown> 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"

View File

@ -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"

View File

@ -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

View File

@ -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 ))

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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 ))

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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 ))