Shell脚本从终端调用Python但是从Cron失败

时间:2011-03-24 15:16:56

标签: python bash cron

我有一个shell脚本,因此:

export PYTHONPATH=/usr/local/lib/python
cd /home/skip/workspace/UAM
for file in *.txt
do
    echo $file >>log.fil
    /usr/bin/python push.py -s $file
done
return 0

它从命令行正常运行。将每个文件名打印到日志文件并按预期运行python push.py命令。 (它创建一个目录并填充它。)

但是当我尝试使用此crontab从cron运行它时:

3 * * * * /home/skip/workspace/UAM/RunAllTest.sh 

我在日志文件中看到条目,但是push.py运行不正常。 (该目录未创建或填充。)

欢迎任何帮助。

2 个答案:

答案 0 :(得分:3)

检查push.py是否需要任何可能未在crontab上下文中设置的环境变量。如果它是用户crontab(不是root cron),那么它将被执行,就像同一个用户执行该行一样,但不一定要进入相同的环境(如初始化文件中的别名和路径集)。

答案 1 :(得分:1)

知道了。感谢licorna的亲切帮助。

发生的事情是我的“push.py”脚本在没有指定完全限定路径的情况下调用另一个程序(pybot aka robot framework)。

我将其从“pybot”更改为/ usr / local / bin / pybot“并且一切正常。