#!/bin/sh # Purpose {{{ ## If Xymon server says that a probe is in error on a remote host, try to call the appropriate script. ## For debugging messages, you can check xymon's logs (/var/log/xymon/alert.log) ## How-to use : {{{ ### Define an alert in Xymon configuration file (/etc/xymon/alerts.cfg) #HOST=HOST.DOMAIN.ORG # SCRIPT /PATH/TO/SCRIPT/xymon.alert.sh 1234567890 FORMAT=SCRIPT DURATION<20 ## }}} # }}} # Vars {{{ DEBUG=1 script_path="$(dirname -- ${0})" script_apt="${script_path}/xymon.apt.alert.sh" script_files="${script_path}/xymon.files.alert.sh" script_libs="${script_path}/xymon.libs.alert.sh" script_procs="${script_path}/xymon.procs.alert.sh" # }}} [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG : ${BBHOSTNAME} — ${BBSVCNAME} is in error." # Match probe name with the script {{{ case "${BBSVCNAME}" in 'apt' ) script_to_run="${script_apt}" ;; 'files' ) script_to_run="${script_files}" ;; 'libs' ) script_to_run="${script_libs}" ;; 'procs' ) script_to_run="${script_procs}" ;; # default * ) script_to_run="NOT.MANAGED" ;; esac # }}} # Call the next script if managed {{{ if [ "${script_to_run}" != "NOT.MANAGED" ]; then # Export vars {{{ [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG : ${BBHOSTNAME} — Export vars for ${script_to_run}" export BBALPHAMSG export BBHOSTNAME export BBSVCNAME # }}} [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG : ${BBHOSTNAME} — Run ${script_to_run} script." "${script_to_run}" fi # }}} exit 0