2014-01-23 42 views
0

我正在編寫一個插件來檢查對https站點的身份驗證,然後在響應html,正文中搜索文本以確認登錄成功。我創建了以下插件Nagios自定義插件(https身份驗證)不能按預期方式工作

#!/bin/bash 
add_uri='--no-check-certificate https://' 
end_uri='/' 
result=$(wget -O- $add_uri$1$end_uri --post-data=$2) 
flag=`echo $result|awk '{print match($0,"QC Domain")}'`; 
echo $flag 
echo "Nagios refreshes properly1" 

if [[ $flag -gt 0 ]] ; then 
echo 'ALL SEEMS FINE!!' 
exit 0 
    else 
echo 'Some Problem' 
exit 2 
fi; 

當我直接在命令行中執行這個插件

./check_nhttps <url here> '<very long post data with credential information>' 

插件按預期工作(對於這兩種+ & - 測試用例),而且似乎沒有問題。 但當插件從Nagios的運行,

check_command     check_nhttps! <url here> '<very long post data with credential information>' 

它總是顯示嚴重錯誤(打印else條件文本「有些問題」太)。 P.S:試圖用雙引號發送發佈數據。

請幫忙!!!

回答

0

我認爲你的發佈數據很可能包含一些混淆了nagios,可能是空間的字符,甚至是!。最好將發佈數據放入一些文件並使用--post-file。另外,您可以將echo "$2" > /tmp/this_is_my_post_data_when_executed_by_nagios插入到您的腳本中,並檢查發佈數據是否正常。

+0

最後得到它的工作原來在commands.cfg參數的順序是錯誤的。 Ur在腳本中打印參數的想法很有幫助!感謝您的幫助!!! – scharan

相關問題