[monitoring-plugins] Add -a option to print all matching lines and -p ...
rincewind
git at monitoring-plugins.org
Sun Nov 28 14:40:10 CET 2021
Module: monitoring-plugins
Branch: master
Commit: 53b77dee91f780b4d78839f881c642189b829e3c
Author: rincewind <rincewind at vulgrim.de>
Date: Fri Jul 2 18:38:12 2021 +0200
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=53b77de
Add -a option to print all matching lines and -p and -e options for perl and extended RE
---
plugins-scripts/check_log.sh | 51 ++++++++++++++++++++++++++++++++------------
1 file changed, 37 insertions(+), 14 deletions(-)
diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh
index 6e9fbca..8af07b5 100755
--- a/plugins-scripts/check_log.sh
+++ b/plugins-scripts/check_log.sh
@@ -69,6 +69,11 @@ print_usage() {
echo "Usage: $PROGNAME -F logfile -O oldlog -q query"
echo "Usage: $PROGNAME --help"
echo "Usage: $PROGNAME --version"
+ echo ""
+ echo "Other parameters:"
+ echo " -a|--all : Print all matching lines"
+ echo " -p|--perl-regex : Use perl style regular expressions in the query"
+ echo " -e|--extended-regex : Use extended style regular expressions in the query (not necessary for GNU grep)"
}
print_help() {
@@ -115,35 +120,35 @@ while test -n "$1"; do
;;
--filename)
logfile=$2
- shift
+ shift 2
;;
-F)
logfile=$2
- shift
+ shift 2
;;
--oldlog)
oldlog=$2
- shift
+ shift 2
;;
-O)
oldlog=$2
- shift
+ shift 2
;;
--query)
query=$2
- shift
+ shift 2
;;
-q)
query=$2
- shift
+ shift 2
;;
-x)
exitstatus=$2
- shift
+ shift 2
;;
--exitstatus)
exitstatus=$2
- shift
+ shift 2
;;
--extended-regex)
ERE=1
@@ -161,13 +166,20 @@ while test -n "$1"; do
PRE=1
shift
;;
+ --all)
+ ALL=1
+ shift
+ ;;
+ -a)
+ ALL=1
+ shift
+ ;;
*)
echo "Unknown argument: $1"
print_usage
exit "$STATE_UNKNOWN"
;;
esac
- shift
done
# Parameter sanity check
@@ -176,6 +188,8 @@ if [ $ERE ] && [ $PRE ] ; then
exit "$STATE_UNKNOWN"
fi
+GREP="grep"
+
if [ $ERE ]; then
GREP="grep -E"
fi
@@ -219,11 +233,20 @@ fi
diff "$logfile" "$oldlog" | grep -v "^>" > "$tempdiff"
-# Count the number of matching log entries we have
-count=$($GREP -c "$query" "$tempdiff")
+if [ $ALL ]; then
+ # Get the last matching entry in the diff file
+ entry=$($GREP "$query" "$tempdiff")
-# Get the last matching entry in the diff file
-lastentry=$($GREP "$query" "$tempdiff" | tail -1)
+ # Count the number of matching log entries we have
+ count=$(echo "$entry" | wc -l)
+
+else
+ # Count the number of matching log entries we have
+ count=$($GREP -c "$query" "$tempdiff")
+
+ # Get the last matching entry in the diff file
+ entry=$($GREP "$query" "$tempdiff" | tail -1)
+fi
rm -f "$tempdiff"
cat "$logfile" > "$oldlog"
@@ -232,7 +255,7 @@ if [ "$count" = "0" ]; then # no matches, exit with no error
echo "Log check ok - 0 pattern matches found"
exitstatus=$STATE_OK
else # Print total matche count and the last entry we found
- echo "($count) $lastentry"
+ echo "($count) $entry"
exitstatus=$STATE_CRITICAL
fi
More information about the Commits
mailing list