Django 创建计划任务的Bash脚本

Django 创建计划任务的Bash脚本,django,bash,scheduled-tasks,git-bash,Django,Bash,Scheduled Tasks,Git Bash,我编写了一个bash脚本来创建一个计划任务并运行一个django应用程序。我使用GitBash作为终端,并且我已经能够成功地手动运行下面发布的代码片段中的命令。但是,当我使用这些相同的命令运行bash脚本时,调度任务和django应用程序永远不会运行。为什么在行为上存在差异?我如何在bash脚本中纠正这一点 #!/usr/bin/env bash // Create scheduled task echo schtasks //create //tn my-task //tr '"python

我编写了一个bash脚本来创建一个计划任务并运行一个django应用程序。我使用GitBash作为终端,并且我已经能够成功地手动运行下面发布的代码片段中的命令。但是,当我使用这些相同的命令运行bash脚本时,调度任务和django应用程序永远不会运行。为什么在行为上存在差异?我如何在bash脚本中纠正这一点

#!/usr/bin/env bash

// Create scheduled task
echo schtasks //create //tn my-task //tr '"python app/manage.py loaddata /resources/output.json"' //sc daily //st 09:30 //ri 60 //et 16:00

// Run app
echo python app/manage.py runserver

echo "TERMINATED"

$SHELL

要从CMD会话(由Windows调度程序触发)运行bash脚本,您需要:

  • 名为
    git xxx
    的脚本(将
    xxx
    替换为您选择的名称)
  • Windows
    路径中的脚本(以及Git本身)
  • 运行
    git xxx
    的计划任务(注意空格)
它将在git bash会话中运行
git xxx

另一个选项是,仍然从CMD(或计划任务)运行:


在这两种情况下,请确保bash不是,并已激活该功能。

我不是100%确定,但我猜Windows计划任务触发的是命令shell,而不是Git bash。也许可以尝试在Windows中创建virtualenv并运行命令,就像从
cmd.exe
而不是Git Bash运行命令一样?@FlipperPA手动输入命令时,我可以在Git Bash上创建计划任务。只有当我将其包含在bash脚本中时,才会出现问题。除非您想让我在
cmd.exe
中运行脚本?但它仍然需要使用Git Bash或Cygwin之类的工具来执行脚本。我只想运行一个Bash脚本,在我的Windows机器上触发一个计划任务。使用CMD不是必需的。似乎应该有一种通过Git Bash或Cygwin实现这一点的方法,因为我已经能够手动运行调度任务命令,并在Git Bash中使用不同的Bash脚本。你能给点建议吗?@Arny“当计划的作业将调用
git xxx
时,就意味着使用CMD。您是否尝试设置调用该命令的计划作业?一个
git xxx
脚本将依次在git bash会话中运行。不,我没有尝试过,但我不知道它是如何实现我的目标的。我只希望计划任务运行python命令
python app/manage.py loaddata/resources/output.json
。这个命令是在git bash会话还是CMD会话中运行并不重要。为了方便起见,我希望从bash脚本执行这个计划任务,所以我只需运行
source.sh
即可执行所有操作。@Arny要获得与
source.sh
等效的命令,请参阅我的答案:使用
bash-c”/c/path/to/your/script“
bash -c "/c/path/to/your/script"