#!/usr/bin/env bash sanitize() { while read -r data; do set -- $data printf %q "$1" | sed -e 's/\\ / /g' done } print_metric() { while read -r data; do set -- $data if [ -f "$1" ]; then exp_date=`openssl x509 -enddate --noout -in "$1" | sed -e 's/notAfter=//g'` exp_date_unixtime=`date -d "$exp_date" -u +%s` cname=`openssl x509 -subject --noout -in "$1" | sed -e 's/^.*CN = //' | sed -e 's/,.*$//' | sanitize` filename=`realpath "$1" | sanitize` echo "local_x509_expiry_date{cname=\"$cname\",file=\"$filename\"} $exp_date_unixtime" fi done } echo '# HELP local_x509_expiry_date The cert expiry date in unixtime' echo '# TYPE local_x509_expiry_date gauge' printf '%s\n' "$@" | print_metric