diff --git a/xymon/plugins/client/ext/maco.sh b/xymon/plugins/client/ext/maco.sh index 1848142..d662022 100755 --- a/xymon/plugins/client/ext/maco.sh +++ b/xymon/plugins/client/ext/maco.sh @@ -1,7 +1,7 @@ #!/bin/sh # This script will check: -## if upgrade is available for local Maco script (green or yellow) +## every 10 hours if upgrade is available for local Maco script (green or yellow) ## if normal upgrade is planned (green or yellow) ## if urgent upgrade is planned (green or yellow) ## status of the last update (green, yellow or red) @@ -17,6 +17,7 @@ readonly PLUGIN_RESULT="${XYMONTMP}/${MACHINEDOTS}.${TEST}.plugin_result" readonly PLUGIN_STATE="${XYMONTMP}/${MACHINEDOTS}.${TEST}.plugin_state" readonly XYMON_USERNAME="xymon" readonly XYMON_GROUPNAME="xymon" +readonly MACO_VERSION_RESULT="${XYMONTMP}/${MACHINEDOTS}.${TEST}.maco_version" # By default, don't empty files newer than 10hours (600 minutes) readonly DEFAULT_MTIME_MINUTES="600" @@ -27,9 +28,6 @@ readonly MACO_PENDING_UPDATE_FILE="${MACO_LOCAL_DIR}/.maco.upgrade" readonly MACO_PENDING_URGENT_UPDATE_FILE="${MACO_LOCAL_DIR}/.maco.urgent.upgrade" readonly MACO_STATUS_FILE="/var/fr.univ-rennes1.ipr.maco.machinestate.txt" -# Temp files -readonly TEMP_MACO_UPDATE="${XYMONTMP}/${MACHINEDOTS}.${TEST}.maco_update" - # define colours for graphics {{{ # Comment these out if using older BB versions CLEAR_PIC="&clear" @@ -137,16 +135,16 @@ add_header() #echo "
" } # }}} -# Get Maco update state {{{ -get_maco_update() { +# Compare current Maco version to last available version {{{ +check_maco_version() { maco_update_script_path="/opt/repos/ipr.scripts/cluster/maco.check.update.sh" maco_update_script_options="--simulate" - ## Run update_script and store result in TEMP_MACO_UPDATE file - debug_message "get_maco_update − \ + ## Run update_script and store result in MACO_VERSION_RESULT file + debug_message "check_maco_version − \ Run \"${maco_update_script_path}\" script with \"${maco_update_script_options}\" options." - sh "${maco_update_script_path}" "${maco_update_script_options}" >> "${TEMP_MACO_UPDATE}" + sh "${maco_update_script_path}" "${maco_update_script_options}" >> "${MACO_VERSION_RESULT}" } # }}} @@ -154,24 +152,24 @@ Run \"${maco_update_script_path}\" script with \"${maco_update_script_options}\" analyze_maco_update() { debug_message "analyze_maco_update − \ -Try to detect Maco update with ${TEMP_MACO_UPDATE} content." +Try to detect Maco update with ${MACO_VERSION_RESULT} content." - if grep -qE '^Local.* up to date.*' "${TEMP_MACO_UPDATE}" + if grep -qE '^Local.* up to date.*' "${MACO_VERSION_RESULT}" then ## Add color and message to PLUGIN_RESULT for detailed informations - sed "s/^/\&${GREEN_PIC} /" "${TEMP_MACO_UPDATE}" >> "${PLUGIN_RESULT}" + sed "s/^/\&${GREEN_PIC} /" "${MACO_VERSION_RESULT}" >> "${PLUGIN_RESULT}" ## Add information to PLUGIN_STATE echo "36${GREEN_PIC} Maco is uptodate" >> "${PLUGIN_STATE}" - elif grep -qE '^Latest.* available.*' "${TEMP_MACO_UPDATE}" + elif grep -qE '^Latest.* available.*' "${MACO_VERSION_RESULT}" then - sed "s/^/\&${YELLOW_PIC} /" "${TEMP_MACO_UPDATE}" >> "${PLUGIN_RESULT}" + sed "s/^/\&${YELLOW_PIC} /" "${MACO_VERSION_RESULT}" >> "${PLUGIN_RESULT}" echo "26${YELLOW_PIC} Maco needs upgrade" >> "${PLUGIN_STATE}" - elif grep -qE '^Urgent.* available.*' "${TEMP_MACO_UPDATE}" + elif grep -qE '^Urgent.* available.*' "${MACO_VERSION_RESULT}" then - sed "s/^/\&${YELLOW_PIC} /" "${TEMP_MACO_UPDATE}" >> "${PLUGIN_RESULT}" + sed "s/^/\&${YELLOW_PIC} /" "${MACO_VERSION_RESULT}" >> "${PLUGIN_RESULT}" echo "25${YELLOW_PIC} Maco needs urgent upgrade" >> "${PLUGIN_STATE}" else - sed "s/^/\&${CLEAR_PIC} /" "${TEMP_MACO_UPDATE}" >> "${PLUGIN_RESULT}" + sed "s/^/\&${CLEAR_PIC} /" "${MACO_VERSION_RESULT}" >> "${PLUGIN_RESULT}" echo "46${CLEAR_PIC} Maco update state is unknown" >> "${PLUGIN_STATE}" fi @@ -281,12 +279,12 @@ main() { # {{{ # Create or empty previous file only if too old regenerate_if_too_old "${PLUGIN_RESULT}" regenerate_if_too_old "${PLUGIN_STATE}" - regenerate_if_too_old "${TEMP_MACO_UPDATE}" + regenerate_if_too_old "${MACO_VERSION_RESULT}" - ## If TEMP_MACO_UPDATE file is empty - if is_file_empty "${TEMP_MACO_UPDATE}"; then + ## If MACO_VERSION_RESULT file is empty + if is_file_empty "${MACO_VERSION_RESULT}"; then ## (re)check Maco update - get_maco_update + check_maco_version fi ## If any previous file is empty