无法运行crontab django命令

时间:2020-06-26 19:10:02

标签: python django cron

我有一个bash脚本run.sh --- -rwxrwxr-x(我做了chmod + x run.sh)

当我运行./run.sh脚本时,脚本工作正常(将数据追加到文件中)

但是它在crontab中不起作用

crontab -l显示* * * * * ./run.sh

#!/bin/bash

export DJANGO_SETTINGS_MODULE=eda_parser.settings # eda_parser -- name of the project and the main app
cd /home/alex/root_folder/projects/5_eda_parser/eda_parser
source ../venv/bin/activate # run venv
python manage.py delete_old # main django command

eda_parser/
├── manage.py
├── eda_parser # main app
...
├── run.sh # script to run
├── scraper # django commands app
│   ...
│   ├── management
│   │   └── commands
│   │       ├── delete_old.py # code of the command

2 个答案:

答案 0 :(得分:1)

  1. 激活您的虚拟环境
  2. 键入which python以了解您的python可执行文件的路径,然后在您的shell脚本中使用此python可执行文件的路径。
#!/bin/bash
export DJANGO_SETTINGS_MODULE=eda_parser.settings # eda_parser -- name of the project and the main app
/home/sysadmin/.virtualenvs/virtual_environment/bin/python /absolute/path/of/your/manage.py delete_old # main django command

此外,在设置crontab时,您需要提供shell脚本的绝对路径。 假设您希望它在01:15上运行,并将其附加在crontab -e中。

15 1 * * * /absolute/path/to/your/shell/script.sh

答案 1 :(得分:0)

谢谢您的回答!

解决方案,对我有用

* * * * * /home/alex/root_folder/projects/5_eda_parser/eda_parser/run.sh

run.sh

#!/bin/bash

export DJANGO_SETTINGS_MODULE=eda_parser.settings
cd /home/alex/root_folder/projects/5_eda_parser/eda_parser
source ../venv/bin/activate
python manage.py delete_old