monitoring-scripts/check_reboot_required

42 lines
1011 B
Bash
Executable File

#! /bin/bash
#
# check_reboot_required.sh
# Copyright (C) 2021 Vintage Salt <rehashedsalt@cock.li>
#
# Distributed under terms of the MIT license.
#
rr="/var/run/reboot-required"
rrpkgs="/var/run/reboot-required.pkgs"
# 604800 - 1 week in seconds
threshold_crit="${1:-604800}"
# 259200 - 3 days in seconds
threshold_warn="${2:-259200}"
if [ -f "$rr" ]; then
# We have a pending reboot; alert in different states depending on its age
lastmod=$(date +%s -r "$rr")
now=$(date +%s)
pkgs="$(cat "$rr")"
if [ -f "$rrpkgs" ]; then
pkgs="$(cat "$rrpkgs")"
fi
if [ -z "$pkgs" ]; then
pkgs="(No output)"
fi
if (( now - lastmod < threshold_warn )); then
echo "OK - Pending reboot: $pkgs"
exit 0
elif (( now - lastmod < threshold_crit )); then
echo "WARNING - Pending reboot older than $threshold_warn seconds: $pkgs"
exit 1
else
echo "CRITICAL - Pending reboot older than $threshold_crit seconds: $pkgs"
exit 2
fi
else
# We have no pending reboots
echo "OK - No pending reboots"
exit 0
fi