2012-09-18 787 views
1

我在我的紅帽服務器上做了一個shell腳本,需要每分鐘運行一次。我的腳本位於/media。我已編輯的crontab像這樣:每分鐘執行一次shell腳本的crontab

* * * * * /media/statusshellscript.sh 

我的劇本肯定是在上面的位置,我知道,5星意味着每分鐘運行一次。

哦..和我的腳本definintely作品!因爲當我做./statusshellscript時,它工作正常。無論如何,這是我的腳本,它基本上只是運行我製作的php腳本,這使得生活更輕鬆。

#!/bin/bash 
# Script to execute the PHP Script 

cd ~ 
cd /media/PHPServerTest 
php -f index.php 

Crontab目前沒有做任何事情。不知道接下來要嘗試什麼?

另外..權限不應該是一個問題,因爲我已經完成chmod 777 statusshellscript

+1

會不會每分鐘都是'*/1 * * * *'? –

+0

...究竟發生了什麼? –

+4

@Let_Me_Be爲什麼不是'*/1 */1 */1 */1 */1'呢? –

回答

1

如果未運行,雖然的cronjob命令其工作得很好,那麼就不可能有原因

1)你永遠不會使你的文件可執行,你可以在我的使用解析命令

sudo chmod +x filename 

2)你的路徑是不正確的,尋找絕對路徑,你可以使用命令

realpath(filename) 

如果真實路徑尚未安裝它會提一下你的命令是如何通過檢查這些點應該做工精細安裝它

+0

我試過了'sudo chmod + x filename',沒有任何變化。無法得到'realpath()'的工作,但我做了'pwd',並得到了我放在crontab中的相同路徑。 – rednaxela

+0

如果'。/ filename'有效,'chmod + x filename'不應該被需要,除非發生了新的事情。快速的'ls -l文件名'會告訴OP哪些位被設置。我仍然認爲這是由於'PATH'沒有在crontab中正確設置。 – HonkyTonk

+0

@rednaxela你可以sudo realpath(文件名),通過使用chmod + x文件名你的文件應該是綠色的,如果它不是之前.... –

0

crontab的PATH與shell中的不一樣。

確保您在crontab中定義了一個PATH,其中包含腳本所需的所有內容。

此外,請確保該腳本以指向所需外殼的有效#!標記開頭。

或者,在腳本中使用所有命令的完整路徑。

0

正如其他人所說,我打賭會是一個錯誤配置的PATH。嘗試把這個到您的路徑:

「* * * * * /media/statusshellscript.sh」

去檢查輸出文件,看路徑是運行腳本時。而不是在crontab中定義你的PATH,只需在你的腳本中定義它。

+0

我不能評論爲代表缺乏代表,但試着用你的明確家庭替代〜/home/ Harry

+0

或者實際上刪除了「cd〜」,因爲它沒用 – Harry

相關問題