Soy nuevo en el foro, así como también en el lenguaje Perl. Hace un momento leí las reglas que se deben de seguir para redactar una pregunta en el foro, por lo tanto espero que mi primer mensaje las cumpla al 100 %.
Requiero ejecutar una consulta cíclica por segundo a una aplicación Java mediante un cliente JMX. Sé que existen diversas aplicaciones que realizan estas funciones de una manera fenomenal (como Nagios). Sin embargo, para poder utilizar esas herramientas es necesario instalar del lado del servidor del aplicativo Java ciertos complementos, de los cuales yo no tengo privilegios para poder hacerlo.
Investigando por Internet encontré un conector JMX que funciona desde una terminal (es un JAR), el cual se puede mantener una conexión abierta entre mi cliente que es ejecutado desde un script en Perl hacia el servidor. Y, en efecto, lo acabo de probar y la conexión se mantiene abierta y la información me la trae por segundo si utilizo una llamada a la función sleep().
Using perl Syntax Highlighting
- # This Perl script open connection and call domains
- # $jar stands for path of jmxterm jar file
- open JMX, "| java -jar jmxterm-1.0-alpha-4-uber.jar -n -v silent";
- my $host = "10.119.131.14";
- my $port = 9030;
- print JMX "open $host:$port\n";
- print JMX "bean IUM:Connector=DiameterAdapterServer0000\n";
- while (1)
- {
- system('sleep 1');
- print JMX "get TotalRequestsReceived\n";
- }
- close JMX;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Mi problema está en que el resultado de la línea 14 es impreso en pantalla por la función print. Sin embargo esta función se utiliza para poder ejecutar las opciones del cliente JAR JMX la cual vendría siendo la opción 'get'. Y lo que yo deseo es almacenar el resultado del print (línea 14) en una variable, para así posteriormente poder manipular esa variable y realizar diferencias de resultado de un segundo contra otro.
He estado investigando diversas formas de realizar esto, pero no he encontrado la manera correcta de cómo redirigir ese print de la línea 14 a una variable.
¿Me podrían apoyar con alguna sugerencia?
¡Saludos!