我正在使用 Let's Encrypt 来保护 Ubuntu 上的 Apache 安装。我最近设置了一个部署钩子脚本以在续订时运行,我certbot renew
使用该--deploy-hook
选项将其传递给 cron 作业。
在设置后的第一次更新时,我注意到部署钩子脚本没有运行。深入研究日志后,我发现certbot renew
实际执行更新的调用没有使用参数进行调用--deploy-hook
。
我还看到certbot renew
每天调用三次,而我的 cron 作业只设置为每天运行一次。这三次调用中的一次恰好是在 cron 作业中指定的时间,并且--deploy-hook
提供了参数。另外两次调用的时间分别是 00:30 左右和 12:45 左右,但确切时间每天都会相差几分钟。--deploy-hook
其他调用没有提供参数。
certbot renew
那么:除了我的 cron 作业之外,究竟还有什么在运行?我验证了只有root
一个crontab
,并且它只包含单个作业定义。
答案1
请记住,除了用户 crontabs 之外,还有一个系统 crontab 文件、cron.d 目录以及 cron.hourly、cron.daily 和 cron.weekly 目录。如果您从软件包中安装了该软件,那么这些可能是罪魁祸首。
具体来说,当我查看 certbot debian 包时,我看到一个文件 /etc/cron.d/certbot 。如果你从包中安装了 certbot,那么我怀疑这是你的罪魁祸首。