Cron作业调用bash脚本和python脚本

时间:2011-04-29 16:31:48

标签: python linux bash crontab

好的,所以我有一个bash脚本只需下载一个网页,然后我使用python从下载的页面中提取一些数据。 所以我的bash脚本就是

#!/bin/bash
html_file="web_page.html"
wget -O /home/michael/Documents/CS288/homework7/web_page.html http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp?exchange=13\&screen=1
python hw_7_2.py $html_file

现在,当我从命令行执行此bash脚本运行正常时,wget运行然后我的python脚本执行,但是当我将其设置为cron作业时,wget将运行但python脚本永远不会执行。 我还没有真正设置cron工作,所以我认为这可能是个问题。这基本上就是我的crontab文件的样子

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 * * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh

3 个答案:

答案 0 :(得分:1)

尝试用以下代码替换cron行:

* * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh > /tmp/why_is_this_failing.log 2>&1

答案可能在/tmp/why_is_this_failing.log

答案 1 :(得分:1)

由于$PATH /工作目录存在各种问题,Cron经常失败。您正在设置$PATH,但如果您不在正确的目录中,如果您的bash脚本和python脚本都不起作用,我也不会感到惊讶。

尝试使用更多的绝对路径,看看是否能解决问题。同样,尝试从/或某个地方自行运行您的cron命令,看看它是否适合您。

答案 2 :(得分:0)

您的脚本可能没有设置某些环境变量。当一个cron作业运行时,它没有你正常的配置文件信息 - 它没有加载.profile / .bashprofile(更简单的路径,JAVA_HOME等)一个可能的选择是让脚本源你的.profile等。