如何为edX通告程序摘要运行cron作业

时间:2018-07-16 18:38:07

标签: cron edx

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

  1. crontab和bash脚本中的条目

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

    我在用户(“通知者”)的主目录中放置的脚本内容如下:

    #!/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作业运行?

1 个答案:

答案 0 :(得分:0)

这个答案主要是由用户 tripleee (请参阅上面的评论中的用户答复)。确实,正如他建议的那样,我必须在运行脚本之前激活venv。我只是根据他的想法提供了完整的步骤,帮助我解决了这个问题。 1.如果用户为“通知者”,这就是我在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