2012-05-18 27 views
0

我的任務是從cron運行一個腳本,因此我爲該腳本編寫了以下cronjob,並輸出以下提到的錯誤消息。Cronjob在運行時返回一個錯誤

的cronjob

#BE housekeeper.sh 
* * * * * /product/tools/housekeeper.sh -t BE > /tmp/fileset.out 2>&1 

fileset.out包含的錯誤消息。這是錯誤信息。

/bin/sh: /product/tools/housekeeper.sh: Permission denied 

它爲什麼說權限被拒絕。 user1可以如下

$sh housekeeper.sh -t BE 

然後我檢查USER1是否允許運行的cronjob執行管家腳本。此檢查也通過。 user1被允許運行crontab。所以在這種情況下可能會有什麼錯誤。

root  4181  1 0 2011 ?  00:00:00 crond 
user1 7648 7564 0 06:18 pts/0 00:00:00 grep cron 

我檢查執行的應用程序的權利

$ls -ltr 

-rw-r----- 1 user1 aapp 11732 May 17 08:55 housekeeper.sh 

它說,這個應用程序是事先可執行

感謝anyhelp

+0

屬於serverfault.com – Raptor

回答

2

您需要更改housekeeper.sh755權限(可執行)

chmod 755 housekeeper.sh 

運行sh housekeeper.sh/product/tools/housekeeper.sh在路上稍有差異,這樣做sh調用在$PATH發現所謂sh的可執行文件和飼料housekeeper.sh到它,所以你只需要在housekeeper.sh讀權限,但這麼做/product/tools/housekeeper.sh直接運行它會需要你有執行權限(因此755

編輯

我看到你有-rw-r-----權限,那是相當的簡單610,讓我解釋一下

一個文件有3組權限,用3個3位組表示。第一位表示讀取權限,如在您的輸出中,您看到r,第二位是寫入權限w和第三位(未設置,是x,可執行位)。你有3套,在第一所有者,組,然後其他,這樣你有9位

111 111 111 
VVV VVV VVV 
    | | | 
Owner | | 
    Group | 
     Other 

所以rw-r-----表明所有者具有讀寫位,集團已讀位,和其他沒有有權對此文件進行任何操作。

設置755將產生rwxr-xr-x,我要把它留給你去思考爲什麼:d

+0

我凡是不注日期的問題輸入ls後-ltr爲housekeeper.sh。我無法翻譯輸出以檢查它是否具有可執行權限。你能幫我那 – KItis

+0

@KItis更新我的回答 –

+0

順便說一句:恕我直言0700(甚至可能是0100(...)可能就夠了。在實際嘗試執行文件之前,Cron會更改用戶。 – wildplasser

相關問題