一、web顯示ios
二、nagios服務端測試web
[root@nagiosserver objects]# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.10 -c check_mem
NRPE: Unable to read outputshell
三、nagios客戶端測試apache
[root@apache ~]#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1-c check_mem
NRPE: Unable to read outputwindows
[root@apache ~]# /usr/local/nagios/libexec/check_memory.pl -w 6% -c 3%
-bash: /usr/local/nagios/libexec/check_memory.pl: /usr/bin/perl^M: bad interpreter: No such file or directorybash
四、解決方法:ide
[root@apache ~]# sed -i 's/\r$//' /usr/local/nagios/libexec/check_memory.pl
[root@apache ~]# /usr/local/nagios/libexec/check_memory.pl -w 6% -c 3%
CHECK_MEMORY OK - 384M free | free=403628032b;29877288.96:;14938644.48:
測試
五、緣由:編碼
在*nix系統下使用Perl腳本有時會遇到以下錯誤:
/usr/bin/perl^M: bad interpreter: No such file or directory
最多見的緣由是由於該腳本在windows系統下進行了編輯。
windows系統下的換行符是\r\n,而unix下面是隻有\n的。若是要解決這個問題,只要去掉\r便可。
第一種解決方案是用sed(假設出問題的腳本名叫filename):
sed -i 's/\r$//' filename
這種解決方案適合簡單的ASCII文件形式。
若是狀況再複雜些,比方說filename是Unicode文件,可能會引入了Unicode中某些新的換行符;
另外有時候\r和\n在某些系統上對應的字符編碼並不一致。若是再碰上垂直製表符 0x0B 和進紙符 0x0C 就更麻煩了。
好在Perl提供了另外一種解決方案:
perl -p -i -e "s/\R/\n/g" filename
這裏用到了從Perl 5.10開始引入的\R這個字符組,用來匹配各類換行符,咱們只要方便地將其替換爲\n就能夠了。
同時也沒有必要用腳本文件來實現,只須要在shell裏執行這樣一行命令就好了。
其中-p表示逐行對filename進行操做,-i表示原地操做,覆蓋原始文件,-e則是表示執行後面的語句。unix