]> git.mxchange.org Git - addressbook-war.git/blob - monitor/monitor-cron.sh
Please cherry-pick:
[addressbook-war.git] / monitor / monitor-cron.sh
1 #!/bin/bash
2
3 # Find project name
4 PROJECT_NAME="${PWD%/*}"
5 PROJECT_NAME="${PROJECT_NAME##*/}"
6
7 # FQFN for temporary file
8 MONITOR_TEMP_FILE="/tmp/${PROJECT_NAME}.down"
9
10 # Construct FQFN for configuration file
11 CONFIG_FILE="${HOME}/.monitor-${PROJECT_NAME}-cron.sh"
12
13 . "${CONFIG_FILE}"  || exit 255
14
15 MONITOR_OUTPUT=`lynx -dump -head "${PROJECT_URL}" -auth="${PROJECT_USER}:${PROJECT_PASSWORD}" | head -n 1`
16
17 if [ "${MONITOR_OUTPUT}" != "HTTP/1.1 200 OK" ]
18 then
19         if [ ! -f "${MONITOR_TEMP_FILE}" ]
20         then
21                 echo "$0: ${PROJECT_NAME} is DOWN, status: '${MONITOR_OUTPUT}'"
22                 echo "${MONITOR_OUTPUT}" > ${MONITOR_TEMP_FILE}
23                 exit 1
24         fi
25 elif [ -f "${MONITOR_TEMP_FILE}" ]
26 then
27         PREVIOUS_STATUS=`cat "${MONITOR_TEMP_FILE}"`
28         echo "$0: ${PROJECT_NAME} is UP again, old status was: '${PREVIOUS_STATUS}'"
29         rm -f "${MONITOR_TEMP_FILE}"
30 fi
31
32 # All fine
33 exit 0