我将设置 crontab 以自动续订 lets-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 '随机导入;导入时间; time.sleep(random.random() * 3600)'
最佳答案
它平均休眠半小时,大概是为了防止世界上所有的机器人在他们想要更新的时候准确地访问服务器。
time.sleep()
的参数是秒数,随机选择 0 到 3600 之间的一个值。
如果你有 Bash,你可以用 sleep $((RANDOM/10))
做类似的事情;但是 cron
作业根据定义运行 /bin/sh
,而不是 Bash。 (RANDOM
返回一个介于 0 和 32767 之间的整数 - 正确的除数应该是 9.1;但 Bash 只支持整数运算。)
关于python - 自动更新证书时,centos 7 的 crontab 中的 python 代码有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55393811/