2014-04-15 84 views
0

我的nagios bash腳本可以在客戶端的命令行下正常工作。 當我通過來自nagios服務器的check_nrpe執行相同的腳本時,它會返回以下消息「CHECK_NRPE:沒有從守護進程返回輸出」。Nagios bash腳本在通過check_nrpe執行時不會返回任何輸出

似乎bash腳本中的命令沒有被執行。

arrVars=(`/usr/bin/ipmitool sensor | grep "<System sensor>"`) 

#echo "Hello World!!" 
myOPString="" 
<Process array and determine string to echo along with exit code> 

echo $myOPString 
if [[ $flag == "False" ]]; then 
     exit 1 
else 
     exit 0 
fi 

如果我取消註釋echo語句,則「Hello World」會顯示在nagios監視屏幕上。 我是新來的Linux,但似乎像Nagios的用戶無法執行的ipmitool

+0

對不起,但沒有評論部分,沒有幫助。你的錯誤似乎在代碼的未顯示部分。意思是說,你的「$ myOPString」沒有得到任何你用來獲取值的命令的返回值。因此:請填寫完整的代碼。 – Yunalescar

回答

0
arrVars=(`/usr/bin/ipmitool sensor | grep "<System sensor>"`) 

檢查上面的輸出,你可以重複它,並檢查該值。如果仍然無法正常工作使用其他腳本被這個叫了輸出,並將其分配給一個變量

exit 1 

這是指在嚴重程度,所以,你必須定義不同的條件,其中的嚴重性改變

+0

感謝您的回覆。當我回顯變量時,我在我的nagios UI中看到消息「(從插件返回無輸出)」。當我嘗試從另一個腳本運行它時,調用腳本不會收到任何輸出。 – user2887201

+0

看起來像nagios用戶沒有權限運行ipmitool命令。 – user2887201

+0

Ya,正如我之前建議的那樣,如果您認爲nagios用戶沒有運行ipmitool的權限,您可以執行的操作是讓root用ipmitool命令執行腳本並將其保存在文件中,然後讓此腳本讀取文件。 –

0

此行添加到sudoers的 的nagios ALL =(根)NOPASSWD:在/ usr/bin中/ IPMItool的

然後在你的腳本中使用 「命令在/ usr/bin中/ IPMItool的」

相關問題