编辑 2 27/06/2013:问题是一个与 venv 和 cron 无关的愚蠢错误。使用创建 venv 的同一用户从 cron 运行 venv 使用下面描述的激活效果很好。
编辑25/06/2013:由于在 cron 运行后 nohup.out 没有改变,我怀疑问题出在使用 virtualenv 上。cron 设置的用户与从命令行运行脚本的用户相同。
我已经编写了一个脚本来激活 venv 然后运行一个 python 脚本。当我这样做时,它可以从命令行完美运行
nohup /home/heyheyhey/run.sh &
但是,由于一些黑魔法的原因,python 部分不能从 cron 运行:
0 4 * * * /home/heyheyhey/run.sh &
run.sh 的内容:
#! /bin/bash
cd /home/heyheyhey
. /home/heyheyhey/.pythonbrew/venvs/Python-2.7.2/venvname/bin/activate 2> error.log
python /home/heyheyhey/top.py 2> error.log
bzip2 -c "Exporter.csv" > "extraction.csv.bz2"
run.sh 在创建输出压缩文件后执行。但是,python 脚本不起作用,因为 Exporter.csv 没有更新,而且我在日志文件中看不到活动。
谢谢你的帮助!