change 1 ping to 3
This commit is contained in:
parent
2282d1fffb
commit
acea22e3a8
|
@ -73,7 +73,7 @@ Default:
|
|||
-i = incidents.txt (default)
|
||||
-p = pastincidents.txt (default)
|
||||
-o = index.html (default)
|
||||
-r = rss file (no default)
|
||||
-r = rss file (no default, optional)
|
||||
```
|
||||
|
||||
For example:
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
202306101055,Incident,Between 00:14 and 00:21 UTC on 2023-06-10 a network outage happened at our upstream provider. Resolved
|
||||
202306021200,Maintenance,On 2023-06-15 between 22:30-02:30 UTC our upstream provider has scheduled network maintenance
|
||||
|
|
46
uptimeatomic
46
uptimeatomic
|
@ -1,11 +1,11 @@
|
|||
#!/bin/ksh
|
||||
#
|
||||
# Uptime Atomic v20230604
|
||||
# Uptime Atomic v2023060401
|
||||
# https://git.high5.nl/uptimeatomic/
|
||||
#
|
||||
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
|
||||
CONFIGFILE="uptimeatomic.conf"
|
||||
WORKDIR=$(dirname -- "$(command -v -- "$0")")
|
||||
WORKDIR=$(dirname $0)
|
||||
|
||||
usage() {
|
||||
echo "usage: ${0##*/} [-c checksfile] [-i incidentsfile] [-p pastincidentsfile] [-o htmlfile]" 1>&2
|
||||
|
@ -14,16 +14,16 @@ usage() {
|
|||
|
||||
date_rss() {
|
||||
if [ -n "${1}" ]; then
|
||||
date -uj '+%a, %d %b %Y %H:%M:%S %z' ${1}
|
||||
date -ju '+%a, %d %b %Y %H:%M:%S %z' ${1}
|
||||
else
|
||||
date -uj '+%a, %d %b %Y %H:%M:%S %z'
|
||||
date -ju '+%a, %d %b %Y %H:%M:%S %z'
|
||||
fi
|
||||
}
|
||||
date_incident() {
|
||||
if [ -n "${1}" ]; then
|
||||
date -uj '+%F %H:%M %Z' ${1}
|
||||
date -ju '+%F %H:%M %Z' ${1}
|
||||
else
|
||||
date -uj '+%F %H:%M %Z'
|
||||
date -ju '+%F %H:%M %Z'
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ cat << EOF >> ${_RSSFILE}
|
|||
<item>
|
||||
<title>${_type}</title>
|
||||
<link>${RSS_URL}/rss.xml</link>
|
||||
<guid>${RSS_URL}/rss.xml?$(date -j '+%s' $(echo "${_date}"))</guid>
|
||||
<guid>${RSS_URL}/rss.xml?$(date -ju +%s $(echo "${_date}"))</guid>
|
||||
<pubDate>$(date_rss "${_date}")</pubDate>
|
||||
<description><![CDATA[ ${_description} ]]></description>
|
||||
</item>
|
||||
|
@ -58,12 +58,12 @@ notify() {
|
|||
|
||||
if [ ${_priority} == "ko" ]; then
|
||||
echo "${_status}." | mail -r "${TITLE} <${SENDER}>" -s "${_name} DOWN" ${RECIPIENT}
|
||||
${PUSHOVER} -c ${PUSHOVER_CONF} -t "${TITLE}" -m "${_name} DOWN ${_status}." -p 1 >/dev/null 2>&1
|
||||
${PUSHOVER} -c ${PUSHOVER_CONF} -t "${TITLE}" -m "${_name} DOWN ${_status}" -p 1 >/dev/null 2>&1
|
||||
touch "${PUSHOVER_STATUS}/${_name}"
|
||||
fi
|
||||
if [ ${_priority} == "ok" ]; then
|
||||
_seconds=$(expr $(date +%s) - $(stat -r "${PUSHOVER_STATUS}/${_name}" | awk '{print $11}'))
|
||||
_downtime=$(date -r${_seconds} -u +%H:%M:%S)
|
||||
_seconds=$(expr $(date -ju +%s) - $(stat -r "${PUSHOVER_STATUS}/${_name}" | awk '{print $11}'))
|
||||
_downtime=$(date -jur ${_seconds} +%H:%M:%S)
|
||||
|
||||
echo "${_status} - down for ${_downtime}" | mail -r "${TITLE} <${SENDER}>" -s "${_name} OK" ${RECIPIENT}
|
||||
${PUSHOVER} -c ${PUSHOVER_CONF} -t "${TITLE}" -m "${_name} OK ${_status} - down for ${_downtime}" >/dev/null 2>&1
|
||||
|
@ -94,7 +94,7 @@ check() {
|
|||
fi
|
||||
;;
|
||||
ping*)
|
||||
ping -${IPv}w "${TIMEOUT}" -c 1 "${_host}" >/dev/null 2>&1
|
||||
ping -${IPv}w "${TIMEOUT}" -c 3 "${_host}" >/dev/null 2>&1
|
||||
statuscode=$?
|
||||
if [ "${statuscode}" -ne "${_expectedcode}" ]; then
|
||||
echo "Host unreachable" > "${_TMP}/ko/${_name}.status"
|
||||
|
@ -128,7 +128,7 @@ process_status() {
|
|||
if [ ${_status_files} == "ko" ]; then
|
||||
echo "<li>${_name} <span class='small failed'>(${_status})</span><span class='status failed'>Disrupted</span></li>" >> ${_HTMLFILE}
|
||||
if [ ! -e "${PUSHOVER_STATUS}/${_name}" ]; then
|
||||
notify "${_name}" "${status}" "${_status_files}"
|
||||
notify "${_name}" "${_status}" "${_status_files}"
|
||||
fi
|
||||
fi
|
||||
if [ ${_status_files} == "maint" ]; then
|
||||
|
@ -161,10 +161,10 @@ parse_file() {
|
|||
}
|
||||
|
||||
cd ${WORKDIR}
|
||||
if [ -e "${CONFIGFILE}" ]; then
|
||||
if [ -s "${CONFIGFILE}" ]; then
|
||||
. ${WORKDIR}/${CONFIGFILE}
|
||||
else
|
||||
echo "Configfile ${WORKDIR}/${CONFIGFILE} doesn't exist."
|
||||
echo "Config ${WORKDIR}/${CONFIGFILE} doesn't exist."
|
||||
exit
|
||||
fi
|
||||
|
||||
|
@ -174,7 +174,7 @@ while getopts c:i:o:r:h arg; do
|
|||
i) INCIDENTSFILE=${OPTARG};;
|
||||
p) PASTINCIDENTSFILE=${OPTARG};;
|
||||
o) HTMLFILE=${OPTARG};;
|
||||
r) RSS_FILE=${OPTARG};;
|
||||
r) RSSFILE=${OPTARG};;
|
||||
h) usage;;
|
||||
*) usage;;
|
||||
esac
|
||||
|
@ -188,7 +188,7 @@ fi
|
|||
_TMP="$(mktemp -d)"
|
||||
mkdir -p "${_TMP}/ok" "${_TMP}/ko" "${_TMP}/maint" || exit 1
|
||||
_HTMLFILE="${_TMP}/${HTMLFILE}"
|
||||
[[ -n "${RSS_FILE}" ]] && _RSSFILE="${_TMP}/${RSS_FILE}"
|
||||
[[ -n "${RSSFILE}" ]] && _RSSFILE="${_TMP}/${RSSFILE}"
|
||||
|
||||
parse_file "${CHECKFILE}"
|
||||
|
||||
|
@ -273,7 +273,7 @@ process_status "maint"
|
|||
process_status "ok"
|
||||
|
||||
echo "</ul>" >> ${_HTMLFILE}
|
||||
echo "<p class=small>Last check: $(date -u '+%FT%T %Z')</p>" >> ${_HTMLFILE}
|
||||
echo "<p class=small>Last check: $(date -ju '+%FT%T %Z')</p>" >> ${_HTMLFILE}
|
||||
|
||||
if [ -s "${PASTINCIDENTSFILE}" ]; then
|
||||
echo '<h3>Past Incidents / Maintenance</h3>' >> ${_HTMLFILE}
|
||||
|
@ -287,7 +287,7 @@ cat << EOF >> ${_HTMLFILE}
|
|||
<p class=small>
|
||||
<a href="https://git.high5.nl/uptimeatomic/">Uptime Atomic</a> loosely based on <a href="https://github.com/bderenzo/tinystatus">Tinystatus</a>
|
||||
EOF
|
||||
[[ -n "${_RSSFILE}" ]] && echo " - <a href='${RSS_URL}/${RSS_FILE}'>RSS</a>" >> ${_HTMLFILE}
|
||||
[[ -n "${_RSSFILE}" ]] && echo " - <a href='${RSS_URL}/${RSSFILE}'>RSS</a>" >> ${_HTMLFILE}
|
||||
cat << EOF >> ${_HTMLFILE}
|
||||
</p>
|
||||
</div>
|
||||
|
@ -305,13 +305,13 @@ cat << EOF >> ${_RSSFILE}
|
|||
EOF
|
||||
fi
|
||||
|
||||
if [[ -f "${HTMLDIR}/${RSS_FILE}" ]]; then
|
||||
_diff=$(diff "${_RSSFILE}" "${HTMLDIR}/${RSS_FILE}" | wc -l)
|
||||
if [[ -f "${HTMLDIR}/${RSSFILE}" ]]; then
|
||||
_diff=$(diff "${_RSSFILE}" "${HTMLDIR}/${RSSFILE}" | wc -l)
|
||||
if [ "${_diff}" -ne "4" ]; then
|
||||
cp ${_RSSFILE} ${HTMLDIR}/${RSS_FILE}
|
||||
cp ${_RSSFILE} ${HTMLDIR}/${RSSFILE}
|
||||
fi
|
||||
elif [ -n "${RSS_FILE}" ]; then
|
||||
cp ${_RSSFILE} ${HTMLDIR}/${RSS_FILE}
|
||||
elif [ -n "${RSSFILE}" ]; then
|
||||
cp ${_RSSFILE} ${HTMLDIR}/${RSSFILE}
|
||||
fi
|
||||
|
||||
cp ${_HTMLFILE} ${HTMLDIR}/${HTMLFILE}
|
||||
|
|
Loading…
Reference in New Issue