Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo crear plugins de Nagios con PHP en Ubuntu 12.10

marzo 4, 2020

 

Introducción

IRB, abreviatura de Interactivo Ruby, es una forma rápida para explorar el lenguaje de programación Ruby y probar código sin crear un archivo. IRB es un Read-Eval-Imprimir Loop, o REPL , una herramienta ofrecida por muchos lenguajes de programación modernos. Para usarlo, se lanza el ejecutable IRB y escribe el código de Ruby en el indicador. IRB evalúa el código que escribe y muestra los resultados.

IRB le da acceso a todas las características incorporadas, así como cualquier biblioteca o gemas que haya instalado Ruby. Además, puede configurar IRB para guardar el historial de comandos e incluso permitir la finalización automática de su código.

En este tutorial, vamos a usar IRB para ejecutar algún código, inspeccione su salida, llevar en las bibliotecas externas, y personalizar su sesión de IRB.

Arranque y parada del IRB

Si tiene instalado Ruby, que tendrá IRB. Puede comenzar en cualquier ordenador donde está instalado Rubí ejecutando el IRB comando desde la interfaz de línea de comandos.

irb

  • IRB

será recibido con el IRB indicador:

IRB sessionirb(main):001:0>

El mensaje indica que se está ejecutando IRB y que cualquier cosa que ejecute se ejecutará en el contexto principal, que es el contexto predeterminado de nivel superior de un programa de Ruby. También muestra un número de línea.

Nota : Si ha instalado rubí con RVM, el indicador puede ser un poco diferente, que muestra el número de versión en su lugar:

IRB session from RVM2.4.0 :001 >

Para obtener el símbolo mostrado a lo largo de este tutorial, IRB lanzamiento con IRB –prompt inf-rubí .

IRB acepta la sintaxis de Ruby, que se puede introducir en el indicador. Pruébalo mediante la adición de dos números:

2 + 2

  • 2 + 2

Pulse la tecla ENTER y el IRB le mostrará el resultado:

IRB session=> 4

El => símbolo le permite saber que este es el valor de retorno de la Rubí expresión.

Para IRB salida, escriba exit en el símbolo o presione CTRL + D. Volverá a su intérprete de comandos. la excavación de

Vamos un poco más en el IRB mirando cómo se puede usar para explorar código.

ejecución de código en un IRB Sesión

IRB es una gran manera de probar código para ver si es una buena solución a su problema. Casi todo en Rubí devuelve algún valor, y cada vez que se ejecuta una sentencia en la IRB, verá que el valor de retorno impresa a la pantalla.

Para demostrar esto, ejecutar esta declaración en una nueva sesión de IRB: pone

puts "Hello World"

  • «Hello World»

Cuando se pulsa la tecla ENTER, verá dos resultados de IRB:

OUTPUTHello World
=> nil

El primer resultado es la salida del método pone, que imprime la cadena especificada, seguido por un salto de línea. El método pone imprime el texto al dispositivo de salida estándar, que es su pantalla. Sin embargo, el método pone tiene un valor de retorno, ya que cada método en Ruby tiene un valor de retorno. Devuelve el método pone nulo, y eso es lo que está mostrando IRB.

Cada vez que se ejecuta una sentencia, los cambios rápidos, lo que indica un nuevo número de línea:

irb(main):001:0> puts "Hello World"
Hello World
=> nil
irb(main):002:0>

Esto puede ayudarle a depurar al hacer declaraciones expresiones más complejas en una sesión de IRB, como mensajes de error se refieren a los números de línea.

Puede asignar valores a las variables en una sesión de IRB igual que lo haría en sus programas de Ruby independientes. Ejecutar esta declaración escribiéndola en su sesión de IRB y presionar ENTER:

birth_year = 1868

  • birth_year = 1,868

Vas a ver el valor de retorno de esta declaración se hizo eco de vuelta:

IRB session=> 1868

La variable birth_year mantiene este valor, pero, desde la mayoría de los estados en los valores de retorno Ruby, IRB le muestra el valor de retorno aquí también.

Añadir dos variables más. En primer lugar, crear una variable llamada death_year:

death_year = 1921

  • death_year = 1,921

A continuación, crear la variable age_at_death restando birth_year de death_year:

age_at_death = death_year - birth_year

  • age_at_death = death_year – birth_year

IRB asigna el valor de la variable, pero también se muestra el resultado:

IRB session=> 53

Cuando estás en una sesión de IRB, que no tienen que usar una declaración pone explícitas o imprimir si no quiere, ya que verá sus valores de retorno muestran.

veces deseará escribir código que se extiende por varias líneas. IRB apoya esta forma intuitiva. IRB sólo ejecuta código que es sintácticamente completa. El siguiente código Ruby utiliza una matriz de tiburones y utiliza el método de selección para devolver sólo los tiburones que contienen la letra “a” en su nombre. Escriba este código en su sesión de IRB, presionando ENTRAR después de cada línea:

["Tiger", "Great White", "Angel"].select do |shark|
shark.include?("a")
end

IRB le permite introducir varias líneas de código, pero sólo se ejecuta el código cuando se piensa que el código es sintácticamente completa. Tenga en cuenta que los cambios rápidos para indicar que el IRB aún no está evaluando su código mediante el uso de un asterisco (*) y cambiando el cero final a uno para indicar un alcance diferente:

IRB sessionirb(main):005:0> ["Tiger", "Great White", "Angel"].select do |shark|
irb(main):006:1* shark.include?("a")
irb(main):007:1> end

Desde la primera línea contiene el hacer de palabras clave, IRB doesn ‘t intento de ejecutar nada hasta que encuentra la palabra clave final. A continuación se muestra el resultado:

IRB session=> ["Great White"]

Usando IRB, se puede probar bits de código para ver cómo van a trabajar antes de incorporarlos a sus propios programas. También puede utilizar el IRB para trabajar con bibliotecas externas.

Uso de las bibliotecas y otras joyas

puede importar bibliotecas en su sesión de IRB mediante la instrucción requieren, tal como lo haría en un programa de Ruby. Estas bibliotecas pueden ser cosas incluidas en la biblioteca estándar de Ruby, cosas que ha escrito usted mismo, o gemas , bibliotecas Rubí distribuidos a través de Rubí gemas .org los que se instala con el comando joya. la biblioteca estándar de

Rubí incluye módulos para hacer peticiones web y ir a buscar los resultados. Puede utilizar los de la sesión de IRB exactamente como lo haría en un programa de Ruby.

Uso de la declaración requiere para importar Net / HTTP desde la biblioteca estándar de Ruby. Introduzca la siguiente línea de código en su sesión de IRB y pulse ENTER:

require 'net/http'

IRB indica que esta declaración devuelve true, para informarle de que la biblioteca se cargó correctamente. Ahora escriba este código en IRB para hacer una petición a icanhazip.com a buscar su dirección IP externa:

uri = URI.parse("http://icanhazip.com")
response = Net::HTTP.get_response uri
response.body

Al entrar en cada línea, IRB le muestra el valor de retorno, por lo que se puede depurar cada paso:

IRB sessionirb(main):010:0> uri = URI.parse("http://icanhazip.com")
=> #
irb(main):011:0> response = Net::HTTP.get_response uri
=> #
irb(main):012:0> response.body
=> 203.0.113.52n

Si una biblioteca no se pudo encontrar, verá una respuesta diferente. Intente importar la biblioteca HTTParty, lo que hace que trabajar con HTTP solicita un poco más fácil:

require 'httparty'

verá este mensaje:

IRB sessionLoadError: cannot load such file -- httparty

Este mensaje le indica que el libary que desea no está disponible. HTTParty se distribuye como una joya, por lo que tendremos que instalarlo. Salir de la sesión de IRB con CTRL + D o escriba exit para volver al indicador. A continuación, utilice el comando joya para instalar la gema httparty:

gem install httparty

  • joya instalar httparty

Ahora lanzamiento IRB nuevo.

irb

  • IRB

Pruebe a cargar el módulo nuevo. En su sesión de IRB, escriba este código:

require 'httparty`

Esta vez, el IRB mostrará cierto, que le permite saber que era capaz de cargar la biblioteca. Introducir el código en el IRB para probarlo:

response = HTTParty.get("http://icanhazip.com")
response.body

Verá la salida impresa a la pantalla: de

IRB session=> 203.0.113.52n

Ahora vamos a ver cómo explorar y probar su propio código Ruby con el IRB.

Cargando el código en el IRB

Si inicia una sesión de IRB y utiliza el modificador -r, puede especificar las bibliotecas o gemas que desea cargar cuando se inicia IRB. Por ejemplo, IRB -r httparty podría lanzar una sesión de IRB con la gema httparty ya cargado, lo que significa que puede saltar la explícita requieren httparty comunicado.

Sin embargo, también se puede usar esto para cargar su propio código en una nueva sesión, lo cual es útil cuando se desea explorar o probarlo.

salir de la sesión IRB por la salida de escribir o presionando CTRL + D.

Crear un nuevo archivo llamado Rubí ip_grabber.rb que define un objeto IPGrabber con un método get que, cuando se le proporciona una dirección URL, devolverá la dirección IP externa de la máquina. Vamos a utilizar la biblioteca HTTParty a buscar la respuesta de icanhazip.com. Volveremos a utilizar este objeto IPGrabber en nuestro propio programa para aislar nuestro código de cambios externos; utilizando nuestra obect nos permitiría cambiar hacia fuera la biblioteca subyacente y el sitio que utilizamos para resolver la dirección IP sin tener que cambiar la forma en que el resto de nuestros trabajos de código.

Añadir este código al archivo para definir la clase:

require 'httparty'
class IPGrabber

def initialize()
@url = "http://icanhazip.com"
end

def get
response = HTTParty.get(@url)
response.body.chomp # remove the n if it exists
end
end

Guarde el archivo y salga del editor.

luego lanzar IRB y cargue este archivo. Ya que es un archivo local en lugar de una joya o una biblioteca incorporada, tenemos que especificar una ruta. Asimismo, no se necesita especificar la extensión del archivo .rb.

irb -r ./ip_grabber

  • IRB -r ./ip_grabber

El IRB cargas de sesión, y usted puede comenzar a usar este nuevo objeto en la sesión de la siguiente manera:

ip = IPGrabber.new
ip.get

Vas a ver esta salida:

IRB session=> 203.0.113.52

Al cargar su propio código en una sesión de IRB, se puede inspeccionar el código y el trabajo con sus propias bibliotecas antes de incorporarlos en un programa completo.

Ahora que ya sabe cómo trabajar con código en una sesión de IRB, vamos a ver cómo personalizar su sesión de IRB.

Personalización IRB

Se puede crear un archivo de configuración llamado .irbrc que le permite personalizar su sesión de IRB. A continuación, puede añadir soporte para la terminación automática, la sangría, y la historia de comandos.

crear este archivo en el directorio personal:

nano ~/.irbrc

  • nano ~ / .irbrc

En primer lugar, el apoyo de configuración de autocompletar en IRB. Esto le permitirá utilizar la tecla TAB para autocompletar objeto, nombres de variables, y en nombre de los métodos IRB:

require 'irb/completion'

A continuación, añadir soporte para guardar el historial de comandos en un archivo externo.

IRB.conf[:SAVE_HISTORY] = 1000

Con esta habilitado, las últimas declaraciones que escribe 1000 se registran en el archivo .irb_history en su directorio personal.

Además, cuando se abre una nueva sesión de IRB, su historial se cargará automáticamente, y se puede utilizar el Arriba y Abajo teclas de dirección para moverse a través de estas entradas, o usar CTRL + R para hacer una búsqueda inversa, igual que lo haría en una cáscara de Bash.

Si desea especificar un archivo histórico diferente, añadir a su fichero de configuración:

IRB.conf[:HISTORY_FILE] = '~/your_history_filename'

A continuación, añadir esta línea a su archivo de configuración para permitir la auto-sangría, que es muy útil cuando se escribe clases, métodos y bloques:

IRB.conf[:AUTO_INDENT] = true

Su archivo de configuración puede incluir cualquier código Ruby válida adicional, lo que significa que podría definir métodos de ayuda o uso requiere para cargar bibliotecas adicionales. Por ejemplo, para añadir un ayudante de la historia para su sesión de IRB que mostraría su historia, añadir este código a .irbrc:

def history
history_array = Readline::HISTORY.to_a
print history_array.join("n")
end

Cuando se carga la sesión de IRB, la historia de tipo para ver el historial de IRB. Es posible que tenga un poco, por lo que puede alterar el comando de la historia por lo que toma un número opcional de líneas para mostrar. Reemplazar el código de la función historia con este código, que toma un argumento opcional llamado recuento y lo utiliza para limitar las entradas Muestra:

# history command
def history(count = 0)

# Get history into an array
history_array = Readline::HISTORY.to_a

# if count is > 0 we'll use it.
# otherwise set it to 0
count = count > 0 ? count : 0

if count > 0
from = hist.length - count
history_array = history_array[from..-1]
end

print history_array.join("n")
end

guardar el archivo y empezar una nueva sesión de IRB. A continuación, escriba la historia 2 y verá sólo los dos últimos ines de su historia.

Aunque se puede usar .irbrc a las bibliotecas de carga que utiliza con frecuencia, recuerde que cada biblioteca se carga aumenta el tiempo de carga de la sesión de IRB, que puede hacer que sea menos agradable de usar. Usted es a menudo mejor libaries carga específicos manualmente con las declaraciones requerir.

Conclusión

IRB proporciona un lugar para experimentar con el código Ruby. Es una gran manera de resolver la lógica del programa antes de ponerlo en un archivo.

Ahora que se siente cómodo con el IRB, se puede utilizar para explorar diversos tipos de datos de Ruby siguiendo estos tutoriales y el uso de IRB para ejecutar los ejemplos.

  • Descripción de los tipos de datos en Ruby
  • Cómo trabajar con cadenas en Ruby
  • ¿Cómo trabajar con los métodos de cadena en Ruby
  • cómo trabajar con capas en Rubí
  • cómo utilizar métodos de arreglos en Ruby