通过 cron 更新虚拟环境中的 pip 包
Updating pip package in virtual env via cron
我不确定为什么会这样,我目前在 crontab -e
中设置了这个
*/30 * * * * cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1
问题是这实际上并没有更新脚本。当我 运行 只是
cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1
在终端中它会升级,但是当它通过 cron 运行s 时它不会。
我是否应该将其分解为 bash 脚本以确保成功?我的印象是,如果我可以 运行 在终端中成功执行命令,它也应该在 crontab 上成功执行。
cron 使用 /bin/sh
作为它的 shell,而不是 bash。您正在调用 source
,这是一个 bash 命令。
注意:您可以将 source
替换为 .
,两个 shell 都会识别该命令。
我不确定为什么会这样,我目前在 crontab -e
*/30 * * * * cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1
问题是这实际上并没有更新脚本。当我 运行 只是
cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1
在终端中它会升级,但是当它通过 cron 运行s 时它不会。
我是否应该将其分解为 bash 脚本以确保成功?我的印象是,如果我可以 运行 在终端中成功执行命令,它也应该在 crontab 上成功执行。
cron 使用 /bin/sh
作为它的 shell,而不是 bash。您正在调用 source
,这是一个 bash 命令。
注意:您可以将 source
替换为 .
,两个 shell 都会识别该命令。