将命令链接到LetsEncrypt续订的结果

不多

我想自动运行此命令(这很简单):

~/dehydrated/dehydrated --cron --domain www.mydomain.com --out . --challenge http-01

问题在于,每次证书更新时,我都需要通过电子邮件将当前主机发送给我,以便他们可以在后端实施更改(我知道效率很低,但是别无选择,因为只有他们具有root访问权限)。

当我运行上述命令时,它将检查当前日期是否比证书到期日期大/小于7天。当时间差更大时,它将返回:

Processing www.mydomain.com
 + Checking domain name(s) of existing cert... unchanged.
 + Checking expire date of existing cert...
 + Valid till May  9 19:27:44 2018 GMT (Longer than 7 days). Skipping renew!

而当时间差较小时,它将续订证书。

我想做的是使脚本每天运行。当输出为“跳过更新”我想它什么也不做,关闭,当证书续约,我想在另一个命令(可能与链&&?)发送电子邮件至主机。我已经使用管理命令(python manage.py email_hosts在python中设置了此命令

斯帕霍克
~/dehydrated/dehydrated --cron --domain www.mydomain.com --out . --challenge http-01 | grep -q 'Skipping renew' || python manage.py email_hosts

解释

  • |:将初始命令的输出通过管道传递到下一个命令。这是假定它写入标准输出。
  • grep -q 'Skipping renew'Skipping renew在管道之前在命令的输出中搜索|以“安静”模式运行-q,即实际上不在命令行上显示匹配项。
  • ||如果前一个命令失败(即不匹配),请运行以下命令(即电子邮件)。这本质上与相反&&如果上一个命令与某项匹配,则电子邮件命令将不会运行。

测验

您还可以使用以下类似的命令测试命令流的逻辑:

echo 'Skipping renew' | grep -q 'Skipping renew' || echo Mailing
echo 'Something else' | grep -q 'Skipping renew' || echo Mailing

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章