#!/bin/bash E_OK=0;E_WARN=1;E_CRIT=2;E_UNKNOWN=3 #Коды возврата Nagios WARN=20; CRIT=10 #Задаем пороги предупреждений и критического состояния по-умолчанию. # Считываем пороги, если они заданы в командной строке if [[ -n "$1" ]]; then WARN="$1";fi if [[ -n "$2" ]]; then CRIT="$2";fi res=$E_OK; res_txt="OK" read check_time CPU usr nice sys iowait irq soft steal guest gnice idle <<<$(S_TIME_FORMAT=ISO mpstat --dec=0 1 1|tail -n2|head -n1) if [[ $idle -le $WARN ]]; then res=$E_WARN; res_txt="WARN"; fi if [[ $idle -le $CRIT ]]; then res=$E_CRIT; res_txt="CRIT"; fi echo -n "$res_txt: Idle=$idle% usr=$usr% nice=$nice% sys=$sys% iowait=$iowait% irq=$irq% soft=$soft% steal=$steal% guest=$guest% gnice=$gnice%" echo "|Idle=$idle%;$WARN;$CRIT;; usr=$usr%;;;; nice=$nice%;;;; sys=$sys%;;;; iowait=$iowait%;;;; irq=$irq%;;;; soft=$soft%;;;; steal=$steal%;;;; guest=$guest%;;;; gnice=$gnice%;;;;" exit $res