在自动续订证书时,在centos 7中的crontab中使用python代码有什么用?

问题描述 投票:0回答:2

我将设置crontab以自动续订let-encrypt证书。我有centos7。

以下是我对crontab的命令。

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew 

我知道唯一的事情是certbot renew将在到期日之前续签证书。 0 0,12 * * *是一个cron时间,这个cron将每天中午和午夜运行。

这个python命令有什么用?我只是不知道跟随cron的一部分。

python -c 'import random; import time; time.sleep(random.random() * 3600)'

python cron centos7 certbot
2个回答
2
投票

它平均睡眠半小时,大概是为了防止世界上所有的机器人在他们想要更新的时候正好点击服务器。

time.sleep()的参数是几秒钟,随机化选择0到3600之间的值。

如果你有Bash你可以用sleep $((RANDOM/10))做类似的事情;但根据定义,cron工作运行/bin/sh,而不是Bash。 (RANDOM返回0到32767之间的整数 - 正确的除数类似于9.1;但Bash只支持整数运算。)


1
投票

random.random()返回0到1之间的浮点数(不包括)。因此,random.random() * 3600将返回0到3600之间的任何值(不包括),并且time.sleep将睡眠这么多秒。

如果python命令成功(&&),则运行完整命令,将运行certbot renew

© www.soinside.com 2019 - 2024. All rights reserved.