This commit is contained in:
Patrick Van der Veken 2019-10-19 19:41:02 +02:00
commit f392c884bb
2 changed files with 47 additions and 28 deletions

View File

@ -26,6 +26,7 @@
# @(#) 2018-02-13: fix to avoid log check if syslogd is not active [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-09: text updates [Patrick Van der Veken]
# @(#) 2019-03-16: replace 'which' [Patrick Van der Veken] # @(#) 2019-03-16: replace 'which' [Patrick Van der Veken]
# @(#) 2019-10-07: fixed syslog.log checking [Patrick Van der Veken]
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING!
#****************************************************************************** #******************************************************************************
@ -35,8 +36,8 @@ function check_hpux_syslogd_status
{ {
# ------------------------- CONFIGURATION starts here ------------------------- # ------------------------- CONFIGURATION starts here -------------------------
typeset _SYSLOGD_PID_FILE="/var/run/syslog.pid" typeset _SYSLOGD_PID_FILE="/var/run/syslog.pid"
typeset _SYSLOGD_LOG_FILE="/var/adm/syslog.log" typeset _SYSLOGD_LOG_FILE="/var/adm/syslog/syslog.log"
typeset _VERSION="2019-03-16" # YYYY-MM-DD typeset _VERSION="2019-10-07" # YYYY-MM-DD
typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match
# ------------------------- CONFIGURATION ends here --------------------------- # ------------------------- CONFIGURATION ends here ---------------------------
@ -121,36 +122,45 @@ then
fi fi
# ---- log state ---- # ---- log state ----
_LOGGER_BIN="$(command -v logger 2>>${HC_STDERR_LOG})" # check syslog.log
if [[ -x ${_LOGGER_BIN} && -n "${_LOGGER_BIN}" ]] (( ARG_DEBUG > 0 )) && debug "checking syslogd log via file check"
if [[ -r ${_SYSLOGD_LOG_FILE} ]] && [[ -s ${_SYSLOGD_LOG_FILE} ]]
then then
# write test entry _MSG="syslog.log is present (${_SYSLOGD_LOG_FILE})"
(( ARG_DEBUG > 0 )) && debug "checking syslogd log via {${_LOGGER_BIN}}" _STC=0
${_LOGGER_BIN} -i -t "check_health" "*** LOG CHECK ***" >>${HC_STDOUT_LOG} 2>>${HC_STDERR_LOG}
if (( $? == 0 ))
then
_MSG="syslogd is logging correctly, write via {${_LOGGER_BIN}} OK"
_STC=0
else
_MSG="syslogd is not logging (correctly), write via {${_LOGGER_BIN}} NOK"
_STC=1
fi
else else
# check the syslog itself _MSG="syslog.log is not present or empty (${_SYSLOGD_LOG_FILE})"
(( ARG_DEBUG > 0 )) && debug "checking syslogd log via file check" _STC=1
if [[ -r ${_SYSLOGD_LOG_FILE} ]] && [[ -s ${_SYSLOGD_LOG_FILE} ]]
then
_MSG="syslogd is logging correctly (${_CRON_LOG_FILE})"
_STC=0
else
_MSG="syslogd is not logging (correctly) (${_SYSLOGD_LOG_FILE})"
_STC=1
fi
fi fi
if (( _LOG_HEALTHY > 0 || _STC > 0 )) if (( _LOG_HEALTHY > 0 || _STC > 0 ))
then then
log_hc "$0" ${_STC} "${_MSG}" log_hc "$0" ${_STC} "${_MSG}"
fi fi
# check logger if syslog.log check did not fail
if (( _STC == 0 ))
then
_LOGGER_BIN="$(command -v logger 2>>${HC_STDERR_LOG})"
if [[ -x ${_LOGGER_BIN} && -n "${_LOGGER_BIN}" ]]
then
# write test entry
(( ARG_DEBUG > 0 )) && debug "checking syslogd log via {${_LOGGER_BIN}}"
${_LOGGER_BIN} -i -t "check_health" "*** LOG CHECK ***" >>${HC_STDOUT_LOG} 2>>${HC_STDERR_LOG}
if (( $? == 0 ))
then
_MSG="syslogd is logging correctly, write via {${_LOGGER_BIN}} OK"
_STC=0
else
_MSG="syslogd is not logging (correctly), write via {${_LOGGER_BIN}} NOK"
_STC=1
fi
if (( _LOG_HEALTHY > 0 || _STC > 0 ))
then
log_hc "$0" ${_STC} "${_MSG}"
fi
else
(( ARG_DEBUG > 0 )) && debug "no logger facility found, skipping logger check"
fi
fi
return 0 return 0
} }

View File

@ -27,6 +27,7 @@
# @(#) 2019-01-24: arguments fix [Patrick Van der Veken] # @(#) 2019-01-24: arguments fix [Patrick Van der Veken]
# @(#) 2019-03-09: changed format of stanzas in configuration file & # @(#) 2019-03-09: changed format of stanzas in configuration file &
# @(#) added support for --log-healthy [Patrick Van der Veken] # @(#) added support for --log-healthy [Patrick Van der Veken]
# @(#) 2019-10-16: fix for cron nicknames extensions [Patrick Van der Veken]
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! # DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING!
#****************************************************************************** #******************************************************************************
@ -36,7 +37,7 @@ function check_linux_root_crontab
{ {
# ------------------------- CONFIGURATION starts here ------------------------- # ------------------------- CONFIGURATION starts here -------------------------
typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf" typeset _CONFIG_FILE="${CONFIG_DIR}/$0.conf"
typeset _VERSION="2019-03-09" # YYYY-MM-DD typeset _VERSION="2019-10-16" # YYYY-MM-DD
typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match typeset _SUPPORTED_PLATFORMS="Linux" # uname -s match
# ------------------------- CONFIGURATION ends here --------------------------- # ------------------------- CONFIGURATION ends here ---------------------------
@ -53,6 +54,7 @@ typeset _CRON_LINE=""
typeset _CRON_ENTRY="" typeset _CRON_ENTRY=""
typeset _CRON_MATCH=0 typeset _CRON_MATCH=0
typeset _IS_OLD_STYLE=0 typeset _IS_OLD_STYLE=0
typeset _USER_FIELD=""
# handle arguments (originally comma-separated) # handle arguments (originally comma-separated)
for _ARG in ${_ARGS} for _ARG in ${_ARGS}
@ -122,9 +124,16 @@ print "=== /etc/cron.(hourly|daily|weekly|monthly) ===" >>${HC_STDOUT_LOG}
print "=== /etc/cron.d ===" >>${HC_STDOUT_LOG} print "=== /etc/cron.d ===" >>${HC_STDOUT_LOG}
if [[ -d /etc/cron.d ]] if [[ -d /etc/cron.d ]]
then then
cat /etc/cron.d/* 2>/dev/null | while read _CRON_LINE cat /etc/cron.d/* 2>/dev/null | grep -v -E -e '^#' -e '^$' 2>/dev/null | while read _CRON_LINE
do do
if [[ $(print "${_CRON_LINE}" | awk '{print $6}' 2>/dev/null) == "root" ]] # format: standard cron times or extension nicknames
if [[ "${_CRON_LINE}" =~ ^@ ]]
then
_USER_FIELD=2
else
_USER_FIELD=6
fi
if [[ $(print "${_CRON_LINE}" | awk -v field=${_USER_FIELD} '{print $field}' 2>/dev/null) == "root" ]]
then then
print "${_CRON_LINE}" >>${HC_STDOUT_LOG} 2>>${HC_STDERR_LOG} print "${_CRON_LINE}" >>${HC_STDOUT_LOG} 2>>${HC_STDERR_LOG}
fi fi