aboutsummaryrefslogtreecommitdiff
path: root/modules/profile/files/monitoring/check_date
diff options
context:
space:
mode:
Diffstat (limited to 'modules/profile/files/monitoring/check_date')
-rw-r--r--modules/profile/files/monitoring/check_date32
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/profile/files/monitoring/check_date b/modules/profile/files/monitoring/check_date
new file mode 100644
index 0000000..e7ac38a
--- /dev/null
+++ b/modules/profile/files/monitoring/check_date
@@ -0,0 +1,32 @@
1#!/bin/bash
2
3STATE_OK=0
4STATE_WARNING=1
5STATE_CRITICAL=2
6STATE_UNKNOWN=3
7
8run_command="$1"
9hours="$2"
10as_user="$3"
11
12if [ -z "$as_user" ]; then
13 last_date=$($run_command 2>/dev/null | sort | tail -n 1)
14else
15 last_date=$(sudo -u "$as_user" $run_command 2>/dev/null | sort | tail -n 1)
16fi
17
18if [ -z "$last_date" ]; then
19 echo "UNKNOWN: Could not read date"
20 exit $STATE_UNKNOWN
21else
22 last_date=$(date -d "$last_date" "+%s")
23 LC_ALL=C last_date=$(printf "%.*f" 0 $last_date)
24 min_date=$(date -d "$hours hours ago" "+%s")
25 if [ "$min_date" -lt "$last_date" ]; then
26 echo "OK: Last date $(date -d @$last_date)"
27 exit $STATE_OK
28 else
29 echo "CRITICAL: Last date $(date -d @$last_date)"
30 exit $STATE_CRITICAL
31 fi
32fi