From 7b97702f1587a6abdf458f445a44aae732bb812c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20S?= Date: Thu, 4 Jun 2020 16:50:35 +0900 Subject: [PATCH] evolinux-base: Add check_hpraid.sh This script is meant to be executed as a cron by executing Nagios NRPE plugin check_hpraid and notify by mail any errors --- evolinux-base/files/check_hpraid.sh | 64 +++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 evolinux-base/files/check_hpraid.sh diff --git a/evolinux-base/files/check_hpraid.sh b/evolinux-base/files/check_hpraid.sh new file mode 100644 index 00000000..b4c8ffc0 --- /dev/null +++ b/evolinux-base/files/check_hpraid.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +set -euo pipefail + +# This script is meant to be executed as a cron by executing Nagios +# NRPE plugin check_hpraid and notify by mail any errors + +TMPDIR=/tmp +md5sum=$(command -v md5sum) +awk=$(command -v awk) +check_hpraid="/usr/local/lib/nagios/plugins/check_hpraid -v" +check_hpraid_output=$(mktemp -p $TMPDIR check_hpraid_XXX) +check_hpraid_last="$TMPDIR/check_hpraid_last" +trap trapFunc EXIT ERR + +testDeps() { + + test -x "$md5sum" || (echo "md5sum binary not found"; exit 1) + test -x "$awk" || (echo "awk binary not found"; exit 1) +} + +main() { + + if ! $check_hpraid > "$check_hpraid_output"; then + error=true + else + error=false + fi + if [ ! -f $check_hpraid_last ]; then + cp "$check_hpraid_output" $check_hpraid_last + fi + + # If output and last check is different, display differences and + # exit + md5_now=$(md5sum "$check_hpraid_output" | awk '{print $1}') + md5_last=$(md5sum $check_hpraid_last | awk '{print $1}') + if [[ "$md5_now" != "$md5_last" ]]; then + cat << EOT + Different RAID state detected. + Was: + $check_hpraid_last + Is now: + $check_hpraid_output +EOT + exit 1 + fi + + # If check_hpraid returned error, display output, save status and + # exit + if $error; then + cp "$check_hpraid_output" $check_hpraid_last + cat "$check_hpraid_output" + exit 1 + else + exit 0 + fi +} + +trapFunc() { + + rm "$check_hpraid_output" +} + +testDeps +main