python - 自动更新证书时,centos 7 的 crontab 中的 python 代码有什么用?

标签 python cron centos7 certbot

我将设置 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/

相关文章:

python - 如何将包含字符串和数字的值列表写入文本文件

php - CronJob 在午夜不工作,但如果我将它设置为每 5 分钟一次,它就会工作

docker-compose -/bin/sh : url: command not found

Docker:在 CMD 的 shell 脚本中运行 init 和 systemctl 时出错

python - matplotlib savefig() 大小控制

python - 如何使用 Discord.py 重写更改机器人用户名/头像?

python - 如何删除 matplotlib 注释并调整其大小?

php - 在服务器端为每个用户运行一个函数/脚本

php - cron 作业不会打开 file_get_contents

python - 警告 : `pyenv init -` no longer sets PATH when starting the terminal window