想要将证书到期日期和时间与当前日期和时间进行比较。如果当前日期和时间超过证书到期日期和时间。我需要重新启动服务。通过 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
参考: