26 lines
797 B
Bash
26 lines
797 B
Bash
|
#!/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
|