在 bash 中将证书到期日期和时间与当前日期和时间进行比较

在 bash 中将证书到期日期和时间与当前日期和时间进行比较

想要将证书到期日期和时间与当前日期和时间进行比较。如果当前日期和时间超过证书到期日期和时间。我需要重新启动服务。通过 bash 命令。iotedge 系统是否会在 else 语句中直接重新启动工作。

openssl s_client -connect servername:443 2>/dev/null | openssl x509 -noout -dates | grep 'notAfter'

命令以以下格式提供证书到期日期和时间:例如 2022 年 4 月 9 日 04:57:28 GMT,当前日期为 2022 年 3 月 11 日星期五 05:11:21 UTC

答案1

您可以将给定的日期转换为时间戳(UNIX 时间),然后将其与当前日期和时间以相同的格式进行比较:

#!/bin/bash

# Your command goes in the parenthesis here
exp_date=$(echo 'Jan 9 04:57:28 2022 GMT')

exp_date_ut=$(date -d "$exp_date" +%s)
current_date_ut=$(date +%s)

if (( current_date_ut > exp_date_ut ))
then
    echo 'Do something...'
fi

参考:

相关内容