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.