【发布时间】:2021-06-27 05:09:30
【问题描述】:
我有一个奇怪的行为,我不明白: 我在其他 Web 容器前运行 haproxy 作为负载均衡器和安全防护。
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时,文件每分钟创建一次,所以脚本启动成功,但是service命令好像没有执行?
你的问题可能是什么,为什么在命令行上它可以工作,但从 cron 却不行?
这两项操作都是以 root 本身的 root 权限执行的(当通过脚本中的 whoami 在 cron-call 中转储用户时,“root”在运行时得到确认)
【问题讨论】: