* Added feature for mass archiving (--archive-all)

* Smaller fixes in HP-UX plugins
This commit is contained in:
Patrick Van der Veken 2019-02-13 14:02:46 +01:00
parent a642cdf32d
commit ef266c72e6
3 changed files with 54 additions and 11 deletions

View File

@ -38,7 +38,7 @@
# ------------------------- CONFIGURATION starts here -------------------------
# define the version (YYYY-MM-DD)
typeset -r SCRIPT_VERSION="2019-02-10"
typeset -r SCRIPT_VERSION="2019-02-13"
# location of parent directory containing KSH functions/HC plugins
typeset -r FPATH_PARENT="/opt/hc/lib"
# location of custom HC configuration files
@ -86,6 +86,11 @@ typeset EXIT_CODE=0
typeset FDIR=""
typeset FFILE=""
typeset FPATH=""
typeset HC_ARCHIVE=""
typeset HC_CHECK=""
typeset HC_DISABLE=""
typeset HC_ENABLE=""
typeset HC_RUN=""
typeset HC_FAIL_ID=""
# shellcheck disable=SC2034
typeset HC_FILE_LINE=""
@ -370,14 +375,14 @@ if (( ARG_CHECK_HOST == 0 ))
then
if (( ARG_ACTION < 6 || ARG_ACTION == 10 )) && [[ -z "${ARG_HC}" ]]
then
print -u2 "ERROR: you specify a value for parameter '--hc'"
print -u2 "ERROR: you must specify a value for the '--hc' parameter"
exit 1
fi
if (( ARG_ACTION == 5 )) || [[ -n "${ARG_HC_ARGS}" ]]
then
case "${ARG_HC}" in
*,*)
print -u2 "ERROR: you can only specify a value for '--hc' in combination with '--show'"
print -u2 "ERROR: you can only specify a single value for '--hc' in combination with '--show'"
exit 1
;;
esac
@ -386,7 +391,7 @@ then
then
case "${ARG_HC}" in
*,*)
print -u2 "ERROR: you can only specify a value for '--hc' in combination with '--archive'"
print -u2 "ERROR: you can only specify a single value for '--hc' in combination with '--archive'"
exit 1
;;
esac
@ -534,7 +539,7 @@ 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] | (--disable-all | enable-all) | [--fix-logs [--with-history]] |
[--list=<needle>] | [--list-core] | [--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>]
@ -547,7 +552,8 @@ then
cat << EOT
Parameters:
--archive : move events from the HC log file into archive log files
--archive : move events from the HC log file into archive log files (one HC)
--archive-all : move events for all HCs from the HC log file into archive log files
--check : display HC state.
--check-host : execute all configured HC(s) (see check_host.conf)
--config-file : custom configuration file for a HC (may only be specified when executing a single HC plugin)
@ -726,6 +732,15 @@ do
fi
ARG_LOCK=1
;;
-archive-all|--archive-all)
if (( ARG_ACTION > 0 ))
then
print -u2 "ERROR: you cannot request two actions at the same time"
exit 1
else
ARG_ACTION=13
fi
;;
-check|--check)
ARG_ACTION=1
;;
@ -1351,9 +1366,9 @@ case ${ARG_ACTION} in
9) # list HC plugins
list_hc "" "${ARG_LIST}"
;;
10) # archive log entries
10) # archive current log entries for a HC
exists_hc "${ARG_HC}" && die "cannot find HC: ${ARG_HC}"
log "archiving log entries for ${ARG_HC}..."
log "archiving current log entries for ${ARG_HC}..."
archive_hc "${ARG_HC}"
ARCHIVE_RC=$?
case ${ARCHIVE_RC} in
@ -1389,6 +1404,28 @@ case ${ARG_ACTION} in
;;
esac
;;
13) # archive current log entries for all HCs
list_hc "list" | while read -r HC_ARCHIVE
do
# check for HC (function)
exists_hc "${HC_ARCHIVE}" && die "cannot find HC: ${HC_ARCHIVE}"
log "archiving current log entries for HC: ${HC_ARCHIVE}"
archive_hc "${HC_ARCHIVE}"
ARCHIVE_RC=$?
case ${ARCHIVE_RC} in
0)
log "no archiving needed for ${HC_ARCHIVE}"
;;
1)
log "successfully archived log entries for ${HC_ARCHIVE}"
;;
2)
log "failed to archive log entries for ${HC_ARCHIVE} [RC=${ARCHIVE_RC}]"
EXIT_CODE=1
;;
esac
done
;;
esac
# finish up work

View File

@ -22,7 +22,8 @@
# REQUIRES: data_comma2space(), init_hc(), log_hc()
#
# @(#) HISTORY:
# @(#) 2018-02-08: initial version [Patrick Van der Veken]
# @(#) 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]
# -----------------------------------------------------------------------------
# DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING!
#******************************************************************************
@ -33,7 +34,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-08" # YYYY-MM-DD
typeset _VERSION="2019-02-13" # YYYY-MM-DD
typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match
# ------------------------- CONFIGURATION ends here ---------------------------
@ -92,6 +93,8 @@ esac
if (( _LOG_HEALTHY > 0 || _STC > 0 ))
then
log_hc "$0" ${_STC} "${_MSG}"
# return if cron is not running
(( _STC > 0 )) && return 1
fi
# ---- log state ----

View File

@ -23,6 +23,7 @@
#
# @(#) HISTORY:
# @(#) 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]
# -----------------------------------------------------------------------------
# DO NOT CHANGE THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING!
#******************************************************************************
@ -33,7 +34,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-02-08" # YYYY-MM-DD
typeset _VERSION="2019-02-13" # YYYY-MM-DD
typeset _SUPPORTED_PLATFORMS="HP-UX" # uname -s match
# ------------------------- CONFIGURATION ends here ---------------------------
@ -113,6 +114,8 @@ esac
if (( _LOG_HEALTHY > 0 || _STC > 0 ))
then
log_hc "$0" ${_STC} "${_MSG}"
# return if syslogd is not running
(( _STC > 0 )) && return 1
fi
# ---- log state ----