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

Log Watcher
Log Watcher

14 Apr 15

Gamin
Gamin

2 Jun 15

FunkLoad
FunkLoad

11 May 15

likwid
likwid

20 Feb 15

Otro software de desarrollador Jim Fulton

zc.s3uploadqueue
zc.s3uploadqueue

20 Feb 15

zc.zope3recipes
zc.zope3recipes

14 Apr 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!