2013-08-29 175 views
2

我的操作系統是工作的Ubuntu 12.04的Cron不執行shell腳本..但是從命令行

我試圖執行從cron標籤shell腳本..

是shell腳本工作正常..當我直接在命令行執行..喜歡

sh out.sh 

它工作正常..但,當我爲這個shell腳本設置的cron它不工作

我的shell腳本:out.sh:

#!/bin/bash 
firefox "http://localhost/acceptance/selenium-main/shell.php" 

它會打開,在Firefox瀏覽器shell.php網頁直接從CLI

執行的時候......它工作正常..我的設置cron作業這樣

sudo crontab -e 

然後

23 13 * * * bash /usr/share/nginx/www/acceptance/selenium-main/out.sh 

這不是工作..

我甚至試過

33 13 * * * /usr/share/nginx/www/acceptance/selenium-main/out.sh 

這也是沒有工作..

即使我累斌還執行:/usr/local/bin/out.sh

沒有一種方法是工作

請建議如何解決這個問題..因爲crontab中不執行shell腳本..

回答

0

它看起來像配置GUI應用程序時的cron行爲。嘗試創建一個包裝腳本一樣,

wrapper_script

export DISPLAY=:0.0 
xhost + 2>>/tmp/err.log 
firefox "http://localhost/acceptance/selenium-main/shell.php" 2>>/tmp/err.log 

添加cron項爲,

33 13 * * *慶典/路徑/到/ wrapper_script。SH

+0

感謝您的建議..我嘗試了所有的方法..但沒有爲我工作..即使我嘗試在我的工作站其他系統..它不適合我.. – Dev

+0

@ user2728390檢查我更新的答案。 – VoidPointer

+0

請看我的問題.. – Dev

2

嘗試使用絕對路徑:

23 13 * * * /bin/bash /usr/share/nginx/www/acceptance/selenium-main/out.sh 

也嘗試在登錄模式下運行bash,如果有什麼不工作的權利。

23 13 * * * /bin/bash -l /usr/share/nginx/www/acceptance/selenium-main/out.sh 

這將試圖修復其他變量,如路徑。如果沒有,請嘗試在腳本中明確設置它,或者在任何地方使用絕對路徑。

+0

感謝您的建議..我嘗試了所有的方法..但沒有爲我工作..即使我在其他系統在我的工作站嘗試..它不工作... – Dev

+0

我試過VoidPointer解決方案,這是工作我現在 – Dev

0

嘗試將相同的解決方案konsolebox添加到shell腳本中的firefox行。也許Firefox不在你的路徑

0

如何

php /path_to_localhost/acceptance/selenium-main/shell.php 

如果是剛生產的報告,並沒有用戶interations,只需運行該腳本。你不需要瀏覽器來運行PHP腳本。

0

cron和命令行是您的配置文件運行你的shell,因此,所有的腳本所需要的環境變量設置正確,但cron採用的是裸跑的東西之間的巨大差異「曲線少」貝殼。

嘗試使用腳本來設置所需的所有環境變量,然後執行腳本執行的任何操作,因此它的「自包含」。