如何每天在虚拟环境中将 cron 设置为 运行 pip 更新

How do I set a a cron to run a pip update in a virtual enviroment daily

crontab -e 中,我会制作一个 bash 脚本还是可以像这样将它们全部放在一行中

00 00 * * * /home/www/ source env/bin/activate pip install --upgrade <package>

或者我是否必须按照

之类的方式做一些事情

update.sh

#!/bin/sh
cd /home/www
source env/bin/activate
pip install --upgrade <package>

然后 运行 像这样的 cron

00 00 * * * bash /path/to/update.sh

两种方式都可以,但你还需要在 cron 命令中使用 cd

00 00 * * * cd /home/www/ && source env/bin/activate && pip install --upgrade <package>

&& 在那里,所以如果前面的部分没有成功,命令不会 运行。您的脚本也应该在出现第一个错误时停止,如下所示:

#!/usr/bin/env bash
set -e
cd /home/www
source env/bin/activate
pip install --upgrade <package>

自从你标记了你的问题 bash 我冒昧地确保你的代码实际上 运行 在 bash 而不是其他 shell 下。顶部的 set -e 告诉 bash 在出现第一个错误时停止,而不是盲目地继续并可能搞砸某些事情。您编写的每个脚本都应该以它开头。