如何设置一个cron来每天在虚拟环境中运行pip更新

时间:2015-12-11 01:52:56

标签: bash pip virtualenv crontab

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

1 个答案:

答案 0 :(得分:1)

你可以这样做,但你也需要在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停止第一个错误,而不是盲目地继续并且可能搞砸了。你写的每个脚本都应该从它开始。