检查CRL更新日期的Bash脚本
我正在尝试编写一个Bash脚本,可以用于check_mk代理检查。它需要检查CRL需要在什么时间内更新 根据检查结果,它有3个退出代码(超过50天续订日期、少于50天、少于30天) 目前,我在将日期检查的输出转换为中的“大于XX天”设置时遇到问题。请参阅下面的脚本检查CRL更新日期的Bash脚本,bash,shell,certificate,Bash,Shell,Certificate,我正在尝试编写一个Bash脚本,可以用于check_mk代理检查。它需要检查CRL需要在什么时间内更新 根据检查结果,它有3个退出代码(超过50天续订日期、少于50天、少于30天) 目前,我在将日期检查的输出转换为中的“大于XX天”设置时遇到问题。请参阅下面的脚本 #!/bin/bash # Script that checks when the Certificate Revocation List (CRL) needs to be updated # Declare variables
#!/bin/bash
# Script that checks when the Certificate Revocation List (CRL) needs to be updated
# Declare variables
CRL_PATH="/srv/ca-cust/pki/crl.pem"
CRL_UPDATE="openssl crl -in "$CRL_PATH" -noout -nextupdate | awk -F= '{print $2}'"
WARN_DAYS="$1"
CRIT_DAYS="$2"
WARN_SEC="$((WARN_DAYS * 86400))"
CRIT_SEC="$((CRIT_DAYS * 86400))"
# Check if arguments WARN_DAYS and CRIT_DAYS are present
if [ -z "$WARN_DAYS" ]; then
echo "Missing argument 1 WARN_DAYS. Exiting."
exit 3
fi
if [ -z "$CRIT_DAYS" ]; then
echo "Missing argument 2 CRIT_DAYS. Exiting."
exit 3
fi
# Check when the Certificate Revocation List (CRL) needs to be updated
if ! "$CRL_UPDATE" | xargs -I{} date -d {} +%s` -gt '30'`
then
echo "CRL $CRL_PATH Needs to be updated within $CRIT_DAYS days! Renew and reload services ASAP!"
exit 2
elif ! "$CRL_UPDATE" | xargs -I{} date -d {} +%s` -gt '50'`
then
echo "CRL $CRL_PATH Will need to be updated in less than $WARN_DAYS days. Please renew and reload services."
exit 1
else
echo "CRL $CRL_PATH Will need to be updated in more than $WARN_DAYS days. No action required."
exit 0
fi
您需要对照今天的日期+%s检查所讨论日期的+%s。然后,您需要从今天的日期中减去相关日期,看看它是否大于50