【问题标题】:Restart Opencanary from Crontab从 Crontab 重启 Opencanary
【发布时间】:2021-11-24 20:12:39
【问题描述】:

我在安装了 Ubuntu 18.04 的 Raspberry Pi 上的虚拟环境中运行了一个名为 opencanary 的程序。我想使用 crontab 每 30 分钟重新启动一次。为了进行测试,我将脚本设置为每 3 分钟运行一次,如下所示。 当我手动执行脚本时,它工作正常。当使用 crontab 运行它时它不会,我无法找出它失败的原因。

这是我的脚本的样子:

#!/bin/bash
SHELL=/bin/sh
. /home/pi/.bashrc
source /home/pi/canary-env/bin/activate && cd opencanary && opencanaryd --restart

创建脚本后,我将其添加到 crontab -e:

*/3 * * * * /home/pi/restartOC.sh>>test.log

当我查看 cron.log 文件时,我可以看到脚本已执行:

Sep 29 08:33:01 DiskStation CRON[20880]: (pi) CMD (cd /home/pi && sh restartOC.sh>>test.log)

test.log 文件保持为空。

有人知道我做错了吗?

编辑 05.10.2021 在 opencanary 的 github 上,有人告诉我不必使用“cd opencanary”。我听从了建议并编辑了我的脚本:

#!/bin/bash
SHELL=/bin/sh
. /home/pi/.bashrc
source /home/pi/canary-env/bin/activate && opencanaryd --restart

手动执行时脚本仍然有效,但从 cron 运行脚本时问题仍然存在。

【问题讨论】:

    标签: linux ubuntu cron


    【解决方案1】:

    我通过在终端调用“which opencanaryd”解决了这个问题 这将返回 opencanaryd 命令所在的路径。

    在我的例子中是 /usr/local/bin/opencanaryd

    有了这些知识,就可以编辑脚本,以便 cron 可以找到命令:

    #!/bin/bash
    SHELL=/bin/sh
    . /home/pi/.bashrc
    cd /usr/local/bin/ && . opencanaryd --restart
    

    【讨论】:

      猜你喜欢
      • 2015-02-06
      • 2011-09-01
      • 2015-03-03
      • 2014-03-25
      • 2019-06-10
      • 2018-03-01
      • 1970-01-01
      • 2014-10-13
      • 2023-04-09
      相关资源
      最近更新 更多