暂时没写完,以后有时间再写。也算是学习了一下linux的shell脚本了。使用的Centos7系统的bash版本信息如下:
GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证版本3或者更高 <http://gnu.org/licenses/gpl.html>
这是自由软件,您可以自由地更改和重新发布。
在法律允许的范围内没有担保.
现在已经写了日期判断。
往后要写的内容是:关闭网站的nginx,然后执行续签的命令,但是现在想不到如何进行续签自动化,因为现在使用的txt解析记录的方式续签的,解析记录需要到域名服务商网站登录这一步很难搞定。
#!/bin/bash
# 证书文件路径
CERT_PATH="/etc/letsencrypt/live/kuyour.top/fullchain.pem"
# 获取证书到期日期
NOT_AFTER=$(openssl x509 -in "$CERT_PATH" -text -noout | grep "Not After" | sed 's/^[ \t]*//;s/[ \t]*$//')
echo "证书到期时间:"$NOT_AFTER
due_date=$(date -d "${NOT_AFTER:12:20}" +%s)
#echo $due_date
# 获取当前时间的时间戳
current_timestamp=$(date +%s)
#echo $current_timestamp
# 计算时间差
time_difference=$(($due_date-$current_timestamp))
days_remaining=$(($time_difference/60/60/24))
echo "当前距离证书到期的剩余天数:"$days_remaining
echo $(($days_remaining == 1))
echo $((1==1))
# 检查剩余天数是否等于1
if [ $days_remaining -eq 1 ]; then
echo "剩余天数等于1,执行某些指令"
# 在这里放置你想要执行的指令
else
echo "剩余天数不等于1,不执行指令"
fi
发表回复