zc.monitor

Software captura de pantalla:
zc.monitor
Detalles de software:
Versión: 0.3.1
Fecha de carga: 14 Apr 15
Promotor: Jim Fulton
Licencia: Libre
Popularidad: 1

Rating: nan/5 (Total Votes: 0)

zc.monitor es un servidor que proporciona una interfaz de línea de comandos para solicitar varios bits de información & nbsp;. El servidor es zc.ngi basado, por lo que puede utilizar la infraestructura de pruebas zc.ngi para demostrarlo.
& Nbsp; >>> zc.ngi.testing importación
& Nbsp; >>> zc.monitor importación
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
El servidor admite un conjunto ampliable de comandos. Se ve los comandos que se cita zc.monitor.interfaces.IMonitorPlugin "utilities", como lo define el paquete zope.component.
Para ver esto, vamos a crear un plugin hola:
& Nbsp; >>> def hola (conexión, name = "mundo"):
& Nbsp; ... "" "Saluda
& Nbsp; ...
& Nbsp; ... Proporcionar un nombre si usted no es el mundo.
& Nbsp; ... "" "
& Nbsp; ... connection.write ("Hola% s, bueno para cumplir ya n" nombre%)
y registrarlo:
& Nbsp; >>> zc.monitor.register (hola)
Cuando se registra un comando, podemos proporcionar un nombre. Para ver esto, nos registraremos hola de nuevo:
& Nbsp; >>> zc.monitor.register (hola, 'hola')
Ahora podemos dar la orden hola al servidor:
& Nbsp; >>> connection.test_input ('hola n')
& Nbsp; Hola mundo, encantado de conocerte!
& Nbsp; -> Cerrar
Podemos pasar un nombre:
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('hola Jim n')
& Nbsp; Hola Jim, encantado de conocerte!
& Nbsp; -> Cerrar
El servidor viene con unos pocos comandos básicos. Vamos a registrar para que podamos ver lo que hacen. Vamos a utilizar la interfaz de registro Simplfied:
& Nbsp; >>> zc.monitor.register_basics ()
El primero es el comando de ayuda. Dar ayuda sin entrada, da una lista de los comandos disponibles:
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ("ayuda n ')
& nbsp; Apoyado comandos:
& Nbsp; hola - Saluda
& Nbsp; ayuda - Obtener ayuda sobre los comandos del servidor
& Nbsp; hi - Saluda
& Nbsp; interactivo - Activar el modo interactivo de pantalla
& Nbsp; dejar de fumar - dejar el monitor
& Nbsp; -> Cerrar
Podemos obtener ayuda detallada especificando un nombre de comando:
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('ayuda ayuda n')
& Nbsp; Ayuda para la ayuda:
& Nbsp;
& Nbsp; Obtener ayuda sobre los comandos del servidor
& Nbsp;
& Nbsp; Por defecto, una lista de comandos y los resúmenes se imprime. Proporcionar
& Nbsp; un nombre de comando para obtener la documentación detallada para un comando.
& Nbsp;
& Nbsp; -> Cerrar
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('ayuda hola n')
& Nbsp; Ayuda para hola:
& Nbsp;
& Nbsp; Saluda
& Nbsp;
& Nbsp; Proporcionar un nombre si usted no es el mundo.
& Nbsp;
& Nbsp; -> Cerrar
El comando interactivo conmuta el monitor en modo interactivo. Como hemos visto, el monitor suele responder a un solo comando y luego cierra la conexión. En "modo interactivo", la conexión no se cierra hasta que se utilice el comando quit. Esto puede ser útil cuando se accede a la pantalla a través de telnet para el diagnóstico.
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('interactivo n')
& Nbsp; El modo interactivo en. Utilice "Salir" para salir.
& Nbsp; >>> connection.test_input ('ayudar interactivo n')
& Nbsp; Ayuda para interactivo:
& Nbsp;
& Nbsp; Activar el modo interactivo de pantalla
& Nbsp;
& Nbsp; Normalmente, el monitor de los estrenos de la conexión después de un solo comando.
& Nbsp; Al entrar en el modo interactivo, el monitor no finalizar la conexión
& Nbsp; hasta que introduzca el comando "quit".
& Nbsp;
& Nbsp; En modo interactivo, una línea vacía repite el último comando.
& Nbsp;
& Nbsp; >>> connection.test_input ('ayudar a dejar de n')
& Nbsp; Ayuda para dejar de fumar:
& Nbsp;
& Nbsp; Salga de la pantalla
& Nbsp;
& Nbsp; Este es realmente útil sólo en modo interactivo (el "interactivo"
& Nbsp; de comandos).
& Nbsp;
Observe que el resultado de los comandos no terminó con "-> Cerrar", que habría indicado una conexión cerrada.
Observe también que el modo interactivo le permite repetir comandos.
& Nbsp; >>> connection.test_input ('hola n')
& Nbsp; Hola mundo, encantado de conocerte!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hola mundo, encantado de conocerte!
& Nbsp; >>> connection.test_input ('hola Jim n')
& Nbsp; Hola Jim, encantado de conocerte!
& Nbsp; >>> connection.test_input (' n')
& Nbsp; Hola Jim, encantado de conocerte!
Ahora vamos a utilizar quit para cerrar la conexión.
& Nbsp; >>> connection.test_input ('quit n')
& Nbsp; Adiós.
& Nbsp; -> Cerrar
Por último, vale la pena señalar que las excepciones generarán un rastreo en la conexión.
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('Jim hola 42 n') # doctest: + ELLIPSIS
& Nbsp; El rastreo (most recent call last):
& Nbsp; ...
& Nbsp; TypeError: hola () toma en (dan 3) la mayoría de los 2 argumentos
& Nbsp;
& Nbsp; -> Cerrar
Bucles de comandos
Usar el modo "MÁS", los comandos pueden ser señal de que quieren reclamar toda la entrada del usuario futuro. Vamos a implementar un ejemplo tonto para demostrar cómo funciona.
Aquí hay un comando que implementa una calculadora.
& Nbsp; '.' >>> PROMPT =
& Nbsp; >>> def Calc (conexión, * args):
& Nbsp; ... si args y args [0] == 'Salir':
& Nbsp; ... volver zc.monitor.QUIT_MARKER
& Nbsp; ...
& Nbsp; ... si args:
& Nbsp; ... connection.write (. Str (eval ('' join (args))))
& Nbsp; ... connection.write (' n')
& Nbsp; ...
& Nbsp; ... connection.write (PROMPT)
& Nbsp; ... volver zc.monitor.MORE_MARKER
Si se registra este comando ...
& Nbsp; >>> zc.monitor.register (CALC)
... Podemos invocarlo y obtenemos un aviso.
& Nbsp; >>> conexión = zc.ngi.testing.TextConnection ()
& Nbsp; >>> server = zc.monitor.Server (conexión)
& Nbsp; >>> connection.test_input ('calc n')
& Nbsp ;.
Si luego le damos más entrada obtenemos el resultado más otro símbolo.
& Nbsp; >>> connection.test_input ('2 + 2 n')
& Nbsp; 4
& Nbsp ;.
& Nbsp; >>> connection.test_input ('4 * 2 n')
& Nbsp; 8
& Nbsp ;.
Una vez que hemos terminado podemos decir la calculadora para dejarnos ir.
& Nbsp; >>> connection.test_input ('quit n')
& Nbsp; -> Cerrar
Iniciar servidor
& Nbsp; >>> import time
& Nbsp; >>> zope.testing.loggingsupport importación, registro
& Nbsp; >>> LogHandler = zope.testing.loggingsupport.InstalledHandler (
& Nbsp; ... Ninguno, level = logging.INFO)
& Nbsp; >>> zc.monitor.start (9644)
& Nbsp; ('', 9644)
& Nbsp; >>> LogHandler impresión
& Nbsp; zc.ngi.async.server INFO
& Nbsp; que escucha en ('', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ninguno
& Nbsp; >>> time.sleep (0.1)
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ('127.0.0.1', 9644)
& Nbsp; >>> LogHandler impresión
& Nbsp; zc.ngi.async.server INFO
& Nbsp; que escucha en ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ninguno
& Nbsp; >>> time.sleep (0.1)
Enlazar con el puerto 0:
& Nbsp; >>> addr = zc.monitor.start (0)
& Nbsp; >>> addr == zc.monitor.last_listener.address
& Nbsp; El verdadero
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ninguno
& Nbsp; >>> time.sleep (0.1)
Tratando de volver a enlazar a un puerto en uso:
& Nbsp; >>> loghandler.clear ()
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; ('127.0.0.1', 9644)
& Nbsp; >>> zc.monitor.start (('127.0.0.1', 9644))
& Nbsp; Falso
& Nbsp; >>> LogHandler impresión
& Nbsp; zc.ngi.async.server INFO
& Nbsp; que escucha en ('127.0.0.1', 9644)
& Nbsp; zc.ngi.async.server ADVERTENCIA
& Nbsp; incapaz de escuchar en ('127.0.0.1', 9644)
& Nbsp; raíz ADVERTENCIA
& Nbsp; no puede iniciar el servidor zc.monitor porque la dirección ("127.0.0.1", 9644) está en uso.
& Nbsp; >>> zc.monitor.last_listener.close ()
& Nbsp; >>> zc.monitor.last_listener = Ninguno
& Nbsp; >>> time.sleep (0.1)
& Nbsp; >>> loghandler.uninstall ()

¿Qué hay de nuevo en esta versión:

  • Al enlazar el monitor a un socket Unix-dominio, eliminar un zócalo existente en la misma ruta para que el lazo es exitosa. Esto puede afectar el uso existente con respecto a zopectl comportamiento de depuración, pero será más predecible.

¿Cuál es nuevo en la versión 0.3.0:

  • Se ha añadido una interfaz de registro simplificado
  • .

Requisitos :

  • Python

Programas parecidos

InterMapper
InterMapper

17 Feb 15

OSSEC HIDS
OSSEC HIDS

19 Feb 15

audit daemon
audit daemon

28 Sep 15

Nagisk
Nagisk

2 Jun 15

Otro software de desarrollador Jim Fulton

zc.zope3recipes
zc.zope3recipes

14 Apr 15

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.resumelb
zc.resumelb

20 Feb 15

Comentarios a la zc.monitor

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!