I think I fixed it this time
This commit is contained in:
parent
9cd1903538
commit
d51d6f2b05
@ -31,16 +31,16 @@ function help () {
|
|||||||
Only applicable to 'last_diagnosis'.
|
Only applicable to 'last_diagnosis'.
|
||||||
|
|
||||||
Category can be one of the following:
|
Category can be one of the following:
|
||||||
"Base system"
|
"base system"
|
||||||
"Internet connectivity"
|
"internet connectivity"
|
||||||
"DNS records"
|
"dns records"
|
||||||
"Ports exposure"
|
"ports exposure"
|
||||||
"Web"
|
"web"
|
||||||
"Email"
|
"email"
|
||||||
"Services status check"
|
"services status check"
|
||||||
"System resources"
|
"system resources"
|
||||||
"System configurations"
|
"system configurations"
|
||||||
"Applications"
|
"applications"
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@ -62,22 +62,23 @@ SHOW=$(mktemp /tmp/XXXXXX)
|
|||||||
sudo yunohost diagnosis show --full > $SHOW
|
sudo yunohost diagnosis show --full > $SHOW
|
||||||
# SHOW="show_full.yml"
|
# SHOW="show_full.yml"
|
||||||
|
|
||||||
LAST_DIAGNOSIS=$(( ($(date +%s) - $(cat $SHOW | grep timestamp | tail -n1 | grep -o '[0-9]*') )/3600 ))
|
CHECK_TYPE='na'
|
||||||
|
CATEGORY=''
|
||||||
|
|
||||||
OKS=$(cat $SHOW | category "${1}" | grep -Ec "^ *status: (SUCCESS|INFO)")
|
while [[ $# -gt 0 ]]; do
|
||||||
WARNINGS=$(cat $SHOW | category "${1}" | grep -c "^ *status: WARNING")
|
case "$1" in
|
||||||
ERRORS=$(cat $SHOW | category "${1}" | grep -c "^ *status: ERROR")
|
|
||||||
|
|
||||||
CHECK_TYPE='category'
|
|
||||||
|
|
||||||
while [[ $# -gt 1 ]]; do
|
|
||||||
case "${1}" in
|
|
||||||
-h)
|
-h)
|
||||||
help
|
help
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
last_diagnosis)
|
-a)
|
||||||
CHECK_TYPE='last_diagnosis'
|
shift
|
||||||
|
if [[ "$1" == 'last_diagnosis' ]]; then
|
||||||
|
CHECK_TYPE='last_diagnosis'
|
||||||
|
else
|
||||||
|
CHECK_TYPE='category'
|
||||||
|
CATEGORY="$1"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
-w)
|
-w)
|
||||||
shift
|
shift
|
||||||
@ -93,13 +94,16 @@ done
|
|||||||
|
|
||||||
case "$CHECK_TYPE" in
|
case "$CHECK_TYPE" in
|
||||||
category)
|
category)
|
||||||
|
OKS=$(cat $SHOW | category "$CATEGORY" | grep -Ec "^ *status: (SUCCESS|INFO)")
|
||||||
|
WARNINGS=$(cat $SHOW | category "$CATEGORY" | grep -c "^ *status: WARNING")
|
||||||
|
ERRORS=$(cat $SHOW | category "$CATEGORY" | grep -c "^ *status: ERROR")
|
||||||
if [[ $ERRORS -gt 0 ]]; then
|
if [[ $ERRORS -gt 0 ]]; then
|
||||||
CHECK_STATE=$STATE_CRITICAL
|
CHECK_STATE=$STATE_CRITICAL
|
||||||
cat $SHOW | category "${1}" | grep -A1 "^ *status: ERROR" | grep '^ *summary: ' | sed 's/^ *summary: /ERROR: /'
|
cat $SHOW | category "$CATEGORY" | grep -A1 "^ *status: ERROR" | grep '^ *summary: ' | sed 's/^ *summary: /ERROR: /'
|
||||||
cat $SHOW | category "${1}" | grep -A1 "^ *status: WARNING" | grep '^ *summary: ' | sed 's/^ *summary: /WARNING: /'
|
cat $SHOW | category "$CATEGORY" | grep -A1 "^ *status: WARNING" | grep '^ *summary: ' | sed 's/^ *summary: /WARNING: /'
|
||||||
elif [[ $WARNINGS -gt 0 ]]; then
|
elif [[ $WARNINGS -gt 0 ]]; then
|
||||||
CHECK_STATE=$STATE_WARNING
|
CHECK_STATE=$STATE_WARNING
|
||||||
cat $SHOW | category "${1}" | grep -A1 "^ *status: WARNING" | grep '^ *summary: ' | sed 's/^ *summary: /WARNING: /'
|
cat $SHOW | category "$CATEGORY" | grep -A1 "^ *status: WARNING" | grep '^ *summary: ' | sed 's/^ *summary: /WARNING: /'
|
||||||
elif [[ $OKS -eq 0 ]]; then
|
elif [[ $OKS -eq 0 ]]; then
|
||||||
CHECK_STATE=$STATE_UNKNOWN
|
CHECK_STATE=$STATE_UNKNOWN
|
||||||
echo -e "UNKNOWN: Could not get results from 'yunohost diagnosis show'"
|
echo -e "UNKNOWN: Could not get results from 'yunohost diagnosis show'"
|
||||||
@ -107,8 +111,10 @@ case "$CHECK_TYPE" in
|
|||||||
CHECK_STATE=$STATE_OK
|
CHECK_STATE=$STATE_OK
|
||||||
echo "OK: All diagnostics return SUCCESS"
|
echo "OK: All diagnostics return SUCCESS"
|
||||||
fi
|
fi
|
||||||
|
echo -e "|'OK'=$OKS 'WARNING'=$WARNINGS 'ERROR'=$ERRORS" # The perfdata
|
||||||
;;
|
;;
|
||||||
last_diagnosis)
|
last_diagnosis)
|
||||||
|
LAST_DIAGNOSIS=$(( ($(date +%s) - $(cat $SHOW | grep timestamp | tail -n1 | grep -o '[0-9]*') )/3600 ))
|
||||||
if [[ $LAST_DIAGNOSIS -gt $LAST_DIAGNOSIS_CRIT ]]; then
|
if [[ $LAST_DIAGNOSIS -gt $LAST_DIAGNOSIS_CRIT ]]; then
|
||||||
CHECK_STATE=$STATE_CRITICAL
|
CHECK_STATE=$STATE_CRITICAL
|
||||||
echo "CRITICAL: Diagnosis results are more than $LAST_DIAGNOSIS_CRIT hours old."
|
echo "CRITICAL: Diagnosis results are more than $LAST_DIAGNOSIS_CRIT hours old."
|
||||||
@ -119,10 +125,14 @@ case "$CHECK_TYPE" in
|
|||||||
CHECK_STATE=$STATE_OK
|
CHECK_STATE=$STATE_OK
|
||||||
echo "OK: Diagnosis results are less than $LAST_DIAGNOSIS_WARN hours old."
|
echo "OK: Diagnosis results are less than $LAST_DIAGNOSIS_WARN hours old."
|
||||||
fi
|
fi
|
||||||
|
echo -e "|'Last_Diagnosis'=${LAST_DIAGNOSIS}h" # The perfdata
|
||||||
|
;;
|
||||||
|
na)
|
||||||
|
CHECK_STATE=$STATE_UNKNOWN
|
||||||
|
echo -e "UNKNOWN: Incorrect parameters. See help for details.'"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo -e "|'OK'=$OKS 'WARNING'=$WARNINGS 'ERROR'=$ERRORS 'Last_Diagnosis'=${LAST_DIAGNOSIS}h" # The perfdata
|
|
||||||
|
|
||||||
rm $SHOW
|
rm $SHOW
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user