[CentOS-es] consulta Shell Script Nagios
Fequay
fequay en esfera.cl
Jue Abr 3 14:37:03 UTC 2008
buenas,
estimados estoy realizando un script el cual me trae canales
activos, cantidad de registros de cuentas conectados al
asterisk.
Localmente me funciona pero al pasarselo al NRPE de donde se
realiza la consulta no me lleva los datos "integer"
adjunto codigo:
#!/bin/bash
debug=$(echo "$@" | sed -e "s/.*\(-D\).*/\1/g")
if [ "$debug" = "-D" ]; then
opcion=$( expr "$#" - 1 )
else
opcion="$#"
fi
function retorna_estado {
##############################################################################################
status=$(asterisk -rx "core show channels" | grep "active
calls" | awk '{ print $3" "$2" "$1}')
register=$(asterisk -rx "sip show peers " | grep "OK" | awk
'{ print $3" "$2" "$1}' | wc -l)
usadas=$(echo $status | awk '{ print $3 }')
libres=$(echo "$register - $usadas" | bc)
##############################################################################################
prused=$(echo "$usadas - $libres" | bc -l | sed -e
"s/\(^.....\).*/\1/g" )
if [ "$debug" != "-D" ]; then
status=""
else
status="| $(echo $status | awk '{ print
"Call=" expr $1 "KB;t=" $1 ";u=" $2 ";f=" $3 ";s=" $4 ";b="
$5 ";c="$6";" }' )"
fi
if [ "$1" = 0 ]; then
echo "Call Simultaneas:$(echo "$usadas * 1" | bc ),
Registros:$(echo "$register" | bc ), Free:$(echo "$libres" |
bc ), $status"
exit 0
##################################
elif [ "$1" = 1 ]; then
if [ "$libres" -le "$(echo "$2" | bc)" ]; then
echo "Call WARNING Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 1
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "Call OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
elif [ "$1" = 2 ];then
if [ "$libres" -le "$(echo "$2" | bc)" ];then
echo "MEM CRITICAL: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 2
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "MEM OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
elif [ "$1" = 3 ];then
if [ "$libres" -le "$(echo "$3" | b) " ];then
echo "MEM CRITICAL: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 2
elif [ "$libres" -le "$(echo "$2" | bc)" ];then
echo "MEM WARNING: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 1
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "MEM OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
return 0
fi
}
if [ "$1" = "-?" ];then
echo ""
echo "uso: $0 -w INTEGER -c INTEGER -D"
echo "-w : umbral de warning(INTEGER)"
echo "-c : umbral de critical(INTEGER)"
echo "-D : Debug de memoria(APAN)"
echo "-? : esta ayuda"
echo ""
elif [ "$#" = 1 ] && [ "$1" = "-D" ] || [ "$#" = 0
];then
retorna_estado 0
elif [ "$opcion" = 2 ];then
if [ "$1" == "-w" ] && [ "$2" != "" ]; then
retorna_estado 1 $2
elif [ "$1" == "-c" ] && [ "$2" != "" ];then
retorna_estado 2 $2
else
echo "$0: error de parametros"
exit 4
fi
elif [ "$opcion" = 4 ];then
if [ "$1" == "-w" ] && [ "$2" != "" ] && [ "$3" ==
"-c" ] && [ "$4" != "" ];then
retorna_estado 3 $2 $4
else
echo "$0: error de parametros"
exit 4
fi
else
echo "$0: error en parametros"
echo ""
echo "uso: $0 -w INTEGER -c INTEGER"
echo "-w : umbral de warning(INTEGER)"
echo "-c : umbral de critical(INTEGER)"
echo "-? : esta ayuda"
echo ""
fi
Atte.
Fernando Quil Ayala
Más información sobre la lista de distribución CentOS-es