看看/etc/cron.d/certbot
,我认为不会!该文件包含以下行:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
并且,除非我理解错误,否则只有当存在可读的可执行文件/usr/bin/certbot
(存在)并且存在时,才会发生更新不是一个名为的目录/run/systemd/system
(但确实存在,尽管它是空的)。
那么我是对的,位certbot -q renew
永远不会运行吗?也许还有其他地方也会触发更新?(我认为可能会有一些东西,/run/systemd/system
因为正在检查,但正如我所说,没有。出于好奇,为什么做这个小脚本检查是否存在/run/systemd/system
?)
这是运行最新的certbot
(v1.18.0,昨天使用安装官方说明) 在 Ubuntu 18.04 上。
顺便说一下,我已经运行过:
test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run
以 root 身份在命令行上执行此操作,它会立即退出,退出状态为 1。
答案1
如果系统正在使用systemd
,它将作为 systemd 服务运行,并由时间触发。
如果您运行,systemctl status certbot.timer
您将获得从 systemd 触发的服务的状态certbot
。
这就是为什么 cron 脚本被配置为如果在机器上检测到 systemd 则不运行更新的原因。