Cron Job任务未在具有虚拟环境的服务器上执行python脚本

时间:2020-05-14 10:53:25

标签: ssh cron cron-task python-venv

我正在通过SSH连接到服务器。在我的项目中,我有一个/scripts文件夹,其中有我要运行的python脚本。为了执行它,我必须首先激活我的虚拟环境(我的venv文件夹在/ scripts文件夹中)。我曾尝试安排几个不同的Cron作业来执行此操作,但是没有一个人执行该脚本。我知道任务正在执行,因为它们已登录/var/log/syslog

到目前为止,我尝试过的是:

* * * * * cd /path/to/project/ && source /path/to/project/scripts/venv/bin/activate && /path/to/project/scripts/script_to_run.py arguments * * * * * python /path/to/project/scripts/script_to_run.py arguments * * * * * /path/to/project/scripts/venv/bin/python /path/to/project/scripts/script_to_run.py arguments * * * * * /usr/bin/python && source /path/to/project/scripts/venv/bin/activate && /path/to/project/scripts/script_to_run.py arguments

(我并不是想每时每刻都运行所有命令,只需将* * * * *放在这里每个任务的开头)。

我也曾尝试制作.sh脚本并为此进行cron作业(并尝试将错误记录在cronjob.log中,但那也不起作用):

* * * * * bash /path/to/project/scripts/script.sh >/tmp/cronjob.log 2>&1

script.sh

#!/bin/bash source /path/to/project/scripts/venv/bin/activate python /path/to/project/scripts/script_to_run.py arguments

它是可执行文件,可以从终端运行它。

我的项目目录:

project scripts venv bin activate python script_to_run.py script.sh

0 个答案:

没有答案