看着/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
?)
这是在 Ubuntu 18.04 上运行最新的certbot
(v1.18.0,昨天使用官方说明安装)。
顺便说一句,我跑过:
test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run
以 root 身份在命令行上,它立即退出,退出状态为 1。
如果系统正在使用
systemd
,它将作为 systemd 服务运行,由时间触发。如果您运行,您将获得从 systemd
systemctl status certbot.timer
触发的服务的状态。certbot
这就是为什么在机器上检测到 systemd 时将 cron 脚本配置为不运行更新的原因。