Redirect stdout to a file for debug messages

This commit is contained in:
Jeremy Gardais 2018-08-17 10:58:07 +02:00
parent c642749986
commit 18e60cc89e
1 changed files with 14 additions and 11 deletions

View File

@ -41,30 +41,31 @@ systemd-timesync:
See http://localhost/xymon-cgi/svcstatus.sh?HOST=HOST.DOMAIN.ORG&SERVICE=libs" See http://localhost/xymon-cgi/svcstatus.sh?HOST=HOST.DOMAIN.ORG&SERVICE=libs"
temp_dir=$(mktemp -d -t xymon-libs-alert-XXXXXX.tmp) temp_dir=$(mktemp -d -t xymon-libs-alert-XXXXXX.tmp)
debug_stdout="${temp_dir}/debug.stdout"
service_list="${temp_dir}/services.error.list" service_list="${temp_dir}/services.error.list"
# }}} # }}}
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: ${BBHOSTNAME}${BBSVCNAME} error"
# Temp dir for this alert # Temp dir for this alert
if [ ! -d "${temp_dir}" ] ; then if [ ! -d "${temp_dir}" ] ; then
mkdir -p -- "${temp_dir}" mkdir -p -- "${temp_dir}"
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: ${temp_dir} — created."
fi fi
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: ${BBHOSTNAME}${BBSVCNAME} error" > "${debug_stdout}"
# Check if host need to reboot # Check if host need to reboot
if echo "${BBALPHAMSG}" | grep -qE "\\&yellow Machine should be reboot.*" ; then if echo "${BBALPHAMSG}" | grep -qE "\\&yellow Machine should be reboot.*" ; then
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test kernel — The host need to be rebooted." [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test kernel — The host need to be rebooted." >> "${debug_stdout}"
fi fi
# Check if a service need to restart # Check if a service need to restart
if echo "${BBALPHAMSG}" | grep -qE "\\&yellow The following processes.*" ; then if echo "${BBALPHAMSG}" | grep -qE "\\&yellow The following processes.*" ; then
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — Some services need to be restarted." [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — Some services need to be restarted." >> "${debug_stdout}"
# Get the list of binaries path # Get the list of binaries path
echo "${BBALPHAMSG}" | sed -n 's/^ \(\/.*\) (.*)/\1/p' > "${service_list}" echo "${BBALPHAMSG}" | sed -n 's/^ \(\/.*\) (.*)/\1/p' > "${service_list}"
while IFS= read -r bin_path; do while IFS= read -r bin_path; do
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ${bin_path} use old libs." [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ${bin_path} use old libs." >> "${debug_stdout}"
# Match binaries path and services name {{{
case "${bin_path}" in case "${bin_path}" in
# Arpwatch # Arpwatch
'/usr/sbin/arpwatch' ) '/usr/sbin/arpwatch' )
@ -99,15 +100,17 @@ if echo "${BBALPHAMSG}" | grep -qE "\\&yellow The following processes.*" ; then
process="NOT.MANAGED" process="NOT.MANAGED"
;; ;;
esac esac
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ${process} need to be restarted." # }}}
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ssh -o StrictHostKeyChecking=no ${REMOTE_SSH_USER}@${BBHOSTNAME} sudo systemctl restart ${process}.service"
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ${process} need to be restarted." >> "${debug_stdout}"
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: while bin_path loop — ssh -o StrictHostKeyChecking=no ${REMOTE_SSH_USER}@${BBHOSTNAME} sudo systemctl restart ${process}.service" >> "${debug_stdout}"
done < "${service_list}" done < "${service_list}"
# Also restart xymon-client service # Also restart xymon-client service
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — xymon-client also need to be restarted." [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — xymon-client also need to be restarted." >> "${debug_stdout}"
[ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — ssh -o StrictHostKeyChecking=no ${REMOTE_SSH_USER}@${BBHOSTNAME} sudo systemctl restart xymon-client.service" [ "${DEBUG}" -eq "0" ] && printf '\e[1;35m%-6s\e[m\n' "DEBUG: Test service — ssh -o StrictHostKeyChecking=no ${REMOTE_SSH_USER}@${BBHOSTNAME} sudo systemctl restart xymon-client.service" >> "${debug_stdout}"
fi fi
rm -rf -- "${temp_dir}" [ "${DEBUG}" -eq "0" ] || rm -rf -- "${temp_dir}"
exit 0 exit 0