Who rated this post

cancel
Showing results for 
Search instead for 
Did you mean: 
Duane_Toler
MVP Silver
MVP Silver

You probably need that check_cert_time() function, too:

check_cert_time() {
  local cert_host=$1
  local cert_time=$2

  #echo "--${cert_host}--, --${cert_time}--"
  cert_tm=$(date +"%s" -d "${cert_time}" 2>/dev/null)

  if (( $? )); then
    exitstatus=${STATE_UNKNOWN}
    status_msg="Error processing certificate status (cert_host: ${cert_host})"

    echo ${status_msg}
    exit ${exitstatus}
  fi

  #echo "date now: ${DATE_NOW}"
  cert_days=$(( (${cert_tm} - ${DATE_NOW}) / 86400 ))

  #echo "cert_days: ${cert_days}"
  #echo "warn: ${WARN_LEV}, crit: ${CRIT_LEV}"

  if (( ${cert_days} > ${WARN_LEV} )); then
    status_msg=${status_msg:+${status_msg}"<br>"}"${cert_host} is OK"
    exitstatus=$(( exitstatus | ${STATE_OK} ))
  elif (( ${cert_days} > ${CRIT_LEV} )); then
    status_msg=${status_msg:+${status_msg}"<br>"}"${cert_host} is WARNING"
    exitstatus=$(( exitstatus | ${STATE_WARNING} ))
  elif (( ${cert_days} <= ${CRIT_LEV} )); then ## && ${cert_days} >= 0 )); then
    status_msg=${status_msg:+${status_msg}"<br>"}"${cert_host} is CRITICAL"
    exitstatus=$(( exitstatus | ${STATE_CRITICAL} ))
  else  ## Never will reach here, i know
    status_msg=${status_msg:+${status_msg}"<br>"}"${cert_host} is UNKNOWN"
    exitstatus=$(( exitstatus | 4 ))
  fi

  perf_msg=${perf_msg:+${perf_msg}"<br>"}"${cert_host}: ${cert_days}"

  #echo "${status_msg} | ${perf_msg}"
  #echo "status: ${exitstatus}"
}

 

The status and perfdata message variables are just to feed info back into Nagios.  Do with these what you want ...or not.

 

--
Ansible for Check Point APIs series: https://www.youtube.com/@EdgeCaseScenario and Substack
(1)
Who rated this post