crontab 和 haproxy

Crontab and haproxy

我有一个我不明白的奇怪行为: 我正在 运行将 haproxy 作为负载均衡器和其他 Web 容器前面的安全屏障。

haproxy 运行宁没问题并使用我配置的 letsencrypt 文件。

到目前为止一切顺利。

当 ssl 证书运行到期时,将生成一个包含所有需要的密钥文件的新证书并替换密钥文件。

之后,haproxy 必须重新加载其配置。

现在:当我打电话时

cd /etc/haproxy
service haproxy reload

或命令行中的脚本本身,一切运行都很好。

一旦我通过 cron 调用它,它就不起作用了!?!? 没有错误,重新配置脚本 运行 直到结束。 /etc/haproxy/bin/request_letsencrypt_certificate.sh:

#!/bin/bash
cd /etc/haproxy
service haproxy reload

crontab -e 作为 root:

 # LetsEnrcrypt | recert
    * * * * * /etc/haproxy/bin/request_letsencrypt_certificate.sh

(出于测试目的,我更改为 运行 每分钟 ) 使用echo test>run.txt时每分钟创建一次文件,所以脚本启动成功,但是服务命令好像没有执行?

你的问题是什么,为什么在命令行上有效,但在 cron 上却不行?

这两个操作都是使用 root 权限作为 root 本身执行的(并且当通过脚本中的 whoami 在 cron-call 中转储用户时,“root”在 运行 时间被确认)

如果将 service 更改为 /sbin/service 以确保它在 PATH 中是否有效?您也可能不需要脚本中的 cd /etc/haproxy