【发布时间】:2017-11-13 17:55:07
【问题描述】:
我在我的 VPS 上为我的 root 用户设置了以下 cronjob。如果我以 root 用户身份运行该命令本身就可以了。
30 2 * * * service nginx stop && /opt/letsencrypt/letsencrypt-auto renew && service nginx start > /dev/null
但是它不起作用,因为我可以看到我的 SSL 证书没有更新。
如果我运行cat /var/log/cron,我可以看到以下内容
Nov 13 02:30:01 server CROND[2307]: (root) CMD (service nginx stop && /opt/letsencrypt/letsencrypt-auto renew && service nginx start > /dev/null)
这似乎表明它运行了,但显然它没有完成它应该做的事情。
我的普通用户上的其他 cronjobs 似乎工作正常,但是我不能将该用户用于 crons,因为我需要为这个 cron 暂时停止 Nginx。
关于如何进一步调试和解决这个问题有什么想法吗?
* 编辑:*
我尝试运行它来记录,日志中显示了以下错误/bin/sh: service: command not found
【问题讨论】:
-
直接输出到日志文件而不是 /dev/null。你得到了什么?
-
@TurtlesAllTheWayDown 查看我的编辑。
-
您可能需要将命令列表括在括号中,以将它们的组合输出重定向到日志文件。
-
@RichardSmith 成功了,我在日志中收到以下错误:
/bin/sh: service: command not found我该如何解决这个问题?
标签: nginx cron lets-encrypt