2014-09-06 83 views
0

嘿,我正在研究一個Nagios插件,它旨在允許與perfdata進行復雜的比較。作爲變量的bash參數

這個想法是作爲參數傳遞一個比較字符串,然後使用它來給出狀態。

check_vmstat «display» [-o «output vars»] [-w «warning expr.»] [-c «critical expr.»] -d «delay» 

表達式是布爾型expr。用變量名稱。例如:

check_vmstat cpu_us,memory_free,memory_swpd -w (((cpu_us>80)&&(memory_free<20))||((memory_swpd>5)&&(memory_free<50))) -c *>90 

「顯示」和「輸出變量」將使用這樣的命名法。

你會怎麼做?

回答

1

首先,你要引用的條件,使他們不會在當前shell

選項解析留作練習評價:

warn='(((cpu_us>80)&&(memory_free<20))||((memory_swpd>5)&&(memory_free<50))) ' 
vmstat 1 2 | 
tail -n 1 | 
{ 
    read _ _ memory_swapd memory_free _ _ _ _ _ _ _ _ cpu_us _ _ _ 
    eval "(($warn)) && echo WARNING" 
}