May*_*iya 2 python cron centos7 certbot
我将设置crontab来自动更新let-encrypt证书。我有centos7。
以下是我对crontab的命令。
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Run Code Online (Sandbox Code Playgroud)
我知道唯一的事情是certbot renew 可以在到期日之前更新证书。这0 0,12 * * *是一个cron时间,该cron每天每天中午和午夜运行。
这个python命令有什么用?简而言之,我不了解cron的一部分。
python -c 'import random; import time; time.sleep(random.random() * 3600)'
它平均睡眠半小时,以防止世界上所有的机器人在需要更新的那一小时内准确地攻击服务器。
to的参数time.sleep()是秒数,并且随机选择0到3600之间的值。
如果您有Bash,则可以执行类似的操作sleep $((RANDOM/10));但是cron作业按定义运行/bin/sh,而不是Bash。(RANDOM返回0到32767之间的整数-适当的除数类似于9.1;但是Bash仅支持整数算术。)