#! /bin/bash # # check_reboot_required.sh # Copyright (C) 2021 Vintage Salt # # 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