2011-04-29 133 views
0

好吧,我有一個簡單地下載網頁的bash腳本,然後使用python從下載的頁面中提取一些數據。 所以我的bash腳本是沿Cron作業調用bash腳本和python腳本

#!/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 
+1

雖然不是明顯的問題,但是設置'$ html_file'然後不使用它來輸出'wget'是一個很好的方法,可以幫助你解決問題。 – blahdiblah 2011-04-29 16:42:46

+0

如果您使用Debian,請不要忘記關注cronjob的文件名,如[此處]所述(http://stackoverflow.com/questions/5486601/linux-debian-crontab-job-not-executed)。 – hornetbzz 2011-05-01 19:01:48

回答

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

+0

謝謝塞德里克,錯誤日誌幫助,像其他一些人說,我只是想在Python腳本試圖執行正確的目錄 – mike 2011-04-29 16:52:55

0

這是可能的你的腳本沒有設置一些環境變量。當一個cron作業運行時,它沒有你正常的配置文件信息 - 它不會加載你的.profile/.bashprofile(更簡單的路徑,JAVA_HOME等)一種可能的選擇是讓腳本源代碼.profile等。

1

克朗經常因爲$PATH /工作目錄的種種問題而失敗。您正在設置$PATH,但如果您的bash腳本和python腳本都不在正確的目錄中,我不會感到驚訝。

嘗試使用更多的絕對路徑,看看是否清除了事情。同樣,嘗試從/或某處運行您的cron命令,看看它是否適合您。