AYUDA con Script para un plugin de perl!

Iniciado por Kithai, 16 Noviembre 2016, 10:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Kithai

Saludos!!

Estoy tratando de realizar un script en la empresa donde estoy de practicas, y mi talon de aquiles es la programacion  :-X :-X
Se trata de un script que lance un plugin en perl para Nagios, y dependiendo del texto resultante de la ejecucion de ese plugin, dar un valor de salida "exit 0" o "exit 2" acompañado de un texto a poder ser
Especifico, si en el texto resultante de la ejecucion del PLUGIN existe la palabra CRITICAL solo 1 vez, el script deberia dar "exit 0" y un texto en plan "Tranquilos, todo va bien".
En cambio, si en dicho texto existe la palabra CRITICAL mas de una vez, acabar con "exit 2" mas texto acompañante de alerta

Para aclarar, el valor 0 le dice a nagios que el servicio chequeado esta OK, el 2 le dice que pinte CRITICAL

La putada es que no puedo probar la ejecucion del script "al vuelo" indefinidamente, pues la maquina esta en proceso supervisando servicios criticos de produccion, por lo tanto necesito minimizar los intentos fallidos al minimo

Se que para contabilizar el las palabras puedo usar grep CRITICAL -c
Pero poco mas....

Voy modificando este script que usan ellos que hace algo parecido, pero no lo entiendo del todo:

#!/bin/bash

Código (bash) [Seleccionar]
PROG=/usr/local/nagios/libexec/check_mssql_health
HOST=$1
FILE=/tmp/check_mssqlhealth$1.txt
OK=$2

$PROG $HOST > $FILE

grep CRITICAL -c $OK $FILE
if [ $? -eq 1 ] ; then
  echo "OK!"
  exit 0
else
  echo "ERROR!"
  exit 2
fi

Cualquier ayuda sera muy agradecida!!

Muchas gracias de antemano!


Ocelot1994

Cita de: Kithai en 16 Noviembre 2016, 10:44 AM
Saludos!!

Estoy tratando de realizar un script en la empresa donde estoy de practicas, y mi talon de aquiles es la programacion  :-X :-X
Se trata de un script que lance un plugin en perl para Nagios, y dependiendo del texto resultante de la ejecucion de ese plugin, dar un valor de salida "exit 0" o "exit 2" acompañado de un texto a poder ser
Especifico, si en el texto resultante de la ejecucion del PLUGIN existe la palabra CRITICAL solo 1 vez, el script deberia dar "exit 0" y un texto en plan "Tranquilos, todo va bien".
En cambio, si en dicho texto existe la palabra CRITICAL mas de una vez, acabar con "exit 2" mas texto acompañante de alerta

Para aclarar, el valor 0 le dice a nagios que el servicio chequeado esta OK, el 2 le dice que pinte CRITICAL

La putada es que no puedo probar la ejecucion del script "al vuelo" indefinidamente, pues la maquina esta en proceso supervisando servicios criticos de produccion, por lo tanto necesito minimizar los intentos fallidos al minimo

Se que para contabilizar el las palabras puedo usar grep CRITICAL -c
Pero poco mas....

Voy modificando este script que usan ellos que hace algo parecido, pero no lo entiendo del todo:

#!/bin/bash

Código (bash) [Seleccionar]
PROG=/usr/local/nagios/libexec/check_mssql_health
HOST=$1
FILE=/tmp/check_mssqlhealth$1.txt
OK=$2

$PROG $HOST > $FILE

grep CRITICAL -c $OK $FILE
if [ $? -eq 1 ] ; then
 echo "OK!"
 exit 0
else
 echo "ERROR!"
 exit 2
fi

Cualquier ayuda sera muy agradecida!!

Muchas gracias de antemano!


Para probar podrias añadir un string en el que metas la palabra CRITICAL y ver si esta en ese string a ver si te funciona bien
Código (bash) [Seleccionar]
PROG=/usr/local/nagios/libexec/check_mssql_health
my @prueba =("Hola esto es una prueba CRITICAL");
for my $c(0 ..scalar(@prueba)-1){
....
}