如何每天在虚拟环境中将 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 在出现第一个错误时停止,而不是盲目地继续并可能搞砸某些事情。您编写的每个脚本都应该以它开头。
在 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 在出现第一个错误时停止,而不是盲目地继续并可能搞砸某些事情。您编写的每个脚本都应该以它开头。