2014-09-06 52 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" 
}