【发布时间】:2018-02-04 21:00:31
【问题描述】:
我需要更新我的 Let's encrypt 证书,我这样做是这样的:
$ sudo docker stop nginx
$ sudo docker run -it --rm -p 443:443 --name certbot -v /etc/letsencrypt:/etc/letsencrypt -v /var/log/letsencrypt:/var/log/letsencrypt quay.io/letsencrypt/letsencrypt:latest renew
$ sudo docker start nginx
我经常运行这些命令,所以我想创建一个 cronjob。到目前为止,我创建了这个文件:
$ sudo nano /opt/letsencrypt.sh
包含以下内容:
#!/bin/sh
sudo docker stop nginx
sudo docker run -it --rm -p 443:443 --name certbot -v /etc/letsencrypt:/etc/letsencrypt -v /var/log/letsencrypt:/var/log/letsencrypt quay.io/letsencrypt/letsencrypt:latest renew
sudo docker start nginx
将此文件添加到我所做的 cronjobs 中:
$ sudo nano /etc/crontab
5 8 * * 6 root /opt/letsencrypt.sh
但是什么都没有发生。没有错误,没有行动。我做错了什么?
如果可以记录作业会很棒,这样我就可以看到它何时运行...
【问题讨论】:
-
确保您的脚本具有执行权限(chmod +x /opt/letsencrypt.sh)。您是否尝试从提示符运行脚本?它有效吗?在 /var/log/syslog (或您的发行版的其他系统日志)中,您可以找到 crontab 是否运行了您的脚本。您可以将 stdout / stderr 重定向到一个文件以详细了解会发生什么。