variable change, reduce noise
- s/cntFailures/cntNotify/; - emit status only on state transitions, can get noisy if testing once a minute in crontab - uses file names to track node status
This commit is contained in:
parent
ddeb6e4f73
commit
439a4ca5d7
41
path-loss.sh
41
path-loss.sh
|
@ -17,27 +17,52 @@ nodes=( \
|
|||
)
|
||||
|
||||
# local variables
|
||||
cntFailures=0
|
||||
status=""
|
||||
cntNotify=0
|
||||
status="|"
|
||||
tmpLog=$(mktemp)
|
||||
tmpPing=$(mktemp)
|
||||
|
||||
# preload output
|
||||
date > ${tmpLog}
|
||||
|
||||
# loop through nodes nd test
|
||||
# loop through nodes and test
|
||||
for node in ${!nodes[*]}; do
|
||||
echo -e ${txtSeparator} >> ${tmpLog};
|
||||
echo "checking node ${nodes[${node}]}:" >> ${tmpLog};
|
||||
echo "" >> ${tmpLog}
|
||||
|
||||
ping -W 1 -c ${nAttempts} ${node} > ${tmpPing}
|
||||
cat ${tmpPing} >> ${tmpLog}
|
||||
|
||||
value=$(grep transmitted ${tmpPing} | cut -d ' ' -f 4)
|
||||
if [[ nTrigger -ge value ]]; then
|
||||
((cntFailures++));
|
||||
mtr -w -b --report ${node} >> ${tmpLog};
|
||||
status="${status} ${nodes[${node}]}"
|
||||
if [[ nTrigger -ge value ]]; then flagNxt="dn"
|
||||
else flagNxt="up"; fi
|
||||
|
||||
flagPrv="na"
|
||||
|
||||
if [[ -f /tmp/pl.dn.${node} ]]; then
|
||||
flagPrv="dn"
|
||||
if test "up" = "${flagNxt}"; then
|
||||
rm /tmp/pl.dn.${node}
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -f /tmp/pl.up.${node} ]]; then
|
||||
flagPrv="up"
|
||||
if test "dn" = "${flagNxt}"; then
|
||||
rm /tmp/pl.up.${node}
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${flagPrv}" != "${flagNxt}"; then
|
||||
touch /tmp/pl.${flagNxt}.${node}
|
||||
((cntNotify++));
|
||||
mtr -w -b --report ${node} >> ${tmpLog};
|
||||
status="${status} ${nodes[${node}]} ${flagPrv}>${flagNxt} |"
|
||||
echo "" >> ${tmpLog}
|
||||
echo "Above State Change: ${flagPrv}>${flagNxt}" >> ${tmpLog}
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# footer
|
||||
|
@ -45,7 +70,7 @@ echo -e ${txtSeparator} >> ${tmpLog};
|
|||
date >> ${tmpLog}
|
||||
|
||||
# notify on failure
|
||||
if [[ cntFailures -gt 0 ]]; then
|
||||
if [[ cntNotify -gt 0 ]]; then
|
||||
cat ${tmpLog} | mail -s "${txtSubject}:${status}" ${txtEmail};
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue