我想自动运行此命令(这很简单):
~/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] 删除。
我来说两句