【问题标题】:How to run a cron job for edX notifier digest如何为 edX 通知程序摘要运行 cron 作业
【发布时间】:2018-07-16 18:38:07
【问题描述】:

我正在尝试编写一个 bash 脚本,该脚本将由日常 cron 作业作为特定用户(“通知程序”)运行。

  1. 进入 crontab 和 bash 脚本

    crontab -u notifier -e
    
    53 09 * * * /edx/app/notifier/not.sh
    

    我放置在我的用户('notifier)的主目录中的脚本内容如下:

    #!/bin/bash
    SHELL=/bin/bash
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
    
    cd "$(dirname "$0")"
    DATE=`date +%Y-%m-%d -d "tomorrow"`
    
    /edx/app/notifier/virtualenvs/notifier/bin/python /edx/app/notifier/src/manage.py forums_digest --to_datetime=$DATE
    

    然而,这并没有按预期工作。

  2. 以下是我手动成功运行的各个步骤

    sudo -H -u notifier bash
    cd
    DATE=`date +%Y-%m-%d -d "tomorrow"`
    /edx/app/notifier/virtualenvs/notifier/bin/python /edx/app/notifier/src/manage.py forums_digest --to_datetime=$DATE
    

如何将通知程序摘要作为 cron 作业运行?

【问题讨论】:

  • 您是否收到任何错误消息? /edx/app 真的是这个用户的主目录吗?您是否尝试使用 virtualenv 而不运行其 activate 脚本(或者您是否使用不需要的非标准 venv)?相反,在deactivate(或其他)之后,您的手动步骤是否有效?
  • 这看起来更像是一个 Python 问题,而不是 Bash 问题或 Cron 问题。
  • 这似乎是一个目录问题。在过去的几天里,我一直在尝试很多。我可以手动运行步骤如下(注意我没有明确激活venv) sudo -H -u notifier bash cd /edx/app/notifier/virtualenvs/notifier/bin/python /edx/app/notifier/src/ manage.py forums_digest --to_datetime=2018-07-08
  • 如您所见,在 cmets 中发布代码是没有用的。请edit您的问题以提供任何其他详细信息或诊断信息。
  • 如果我明确设置 home/cd "$(dirname "/edx/app/notifier")",那么一切都运行正常,除了我得到错误 sqlite3.OperationalError: 无法打开数据库文件 nofitier。 db 显然,它无法找到文件夹 /edx/app/notifier/db 中的 db 文件

标签: cron edx


【解决方案1】:

这个答案基本上是由用户 tripleee 提供的(参见他在上面 cmets 中的回复)。事实上,正如他所建议的,我必须在运行脚本之前激活 venv。我只是根据他帮助我解决此问题的想法提供已完成的步骤。 1.如果用户'notifier',这就是我放在crontab中的内容

55 13 * * * /edx/app/notifier/not.sh >/dev/null 2>&1

2。以下是我在 /edx/app/notifier 中创建的脚本文件 not.sh 的内容

#!/bin/bash
source /edx/app/notifier/notifier_env
cd /edx/app/notifier/src
export LANG=en_US.UTF-8
DATE=`date +%Y-%m-%d -d "tomorrow"`
/edx/app/notifier/virtualenvs/notifier/bin/python manage.py forums_digest --to_datetime=$DATE

【讨论】:

  • 我相信您现在应该能够接受这个答案,从而将此问题标记为已解决。另请参阅help
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 2014-11-11
相关资源
最近更新 更多