monitoring-scripts/check_reboot_required

37 lines
808 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="${1:-604800}"
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 )); then
echo "CRITICAL - Pending reboot older than $threshold seconds: $pkgs"
exit 2
else
echo "WARNING - Pending reboot: $pkgs"
exit 1
fi
else
# We have no pending reboots
echo "OK - No pending reboots"
exit 0
fi