【问题标题】:Crontab and haproxy [closed]Crontab 和 haproxy [关闭]
【发布时间】: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”在运行时得到确认)

【问题讨论】:

    标签: bash cron root haproxy


    【解决方案1】:

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

    【讨论】:

    • 感谢这个提示,我要试试这个。 cd 用于将测试输出的输出写入定义的路径。
    • 在 cron 中完全限定路径总是一个好主意!请报告这是否有帮助。如果是这样,请投票+接受答案。如果没有,我们可以尝试进一步的故障排除步骤。
    猜你喜欢
    • 1970-01-01
    • 2012-08-18
    • 2021-06-09
    • 2012-10-24
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多