6 votos

Aplicación para notificar al usuario de una conexión VNC activa

Quiero algo más visual que los muy sutiles prismáticos de Apple en el menú de estado superior derecho cuando hay una conexión VNC entrante activa a la máquina.

Preferiblemente sólo una ventana flotante notificando al usuario que hay una conexión VNC activa, y tal vez la dirección IP. La mejor solución que he encontrado es ejecutar el siguiente comando en la Terminal. Pero eso no resuelve realmente mi problema de monitoreo ya que tengo que ir activamente a buscar los datos.

netstat -a | grep vnc | grep ESTABLISHED

5voto

jm666 Puntos 4489

Siempre puedes hacer este script y ejecutarlo desde un terminal

#!/bin/bash

alertme() {
    say "Big brother watching"
}

while :
do    
  netstat -a | grep vnc | grep ESTABLISHED && alertme
  sleep 60 #wait 60 seconds
done

y tienes una advertencia hablada. Si guardas el script con .command puede iniciarlo desde el buscador haciendo doble clic.

Puede instalar gruñir del directorio Extras el paquete growlnotify. Puedes cambiar la palabra en el alertme por:

growlnotify --appIcon TextEdit "Big brother"  -m 'watching'

y se obtiene una ventana de notificación.

O bien, puede hacer el flujo de trabajo de Automator con el shell script y la alerta de la ventana emergente. :)

O bien, puede utilizar el siguiente:

sudo fs_usage -f network AppleVNCServer | grep -E '(accept|close)'

en lugar de netstat | grep y obtendrá los tiempos exactos de conexión y desconexión, como el siguiente, pero necesita ejecutarlo como administrador... (sudo).

14:19:20  accept                                                                                             0.000024   AppleVNCServ
14:19:33  close                                                                                              0.000047   AppleVNCServ
14:27:01  accept                                                                                             0.000024   AppleVNCServ
14:28:19  close                                                                                              0.000055   AppleVNCServ
14:28:26  accept                                                                                             0.000018   AppleVNCServ
14:28:34  close                                                                                              0.000037   AppleVNCServ

1voto

Oskar Puntos 1242

Dado que launchd inicia y detiene el proceso de compartición de pantalla, puede crear un nuevo trabajo de launchd que utilice un KeepAlive diccionario con un OtroTrabajoHabilitado cláusula para vincular su herramienta de advertencia a la etiqueta launchd com.apple.ScreenSharing.server

Cuando ScreenSharing se inicie, su trabajo también será iniciado por launchd. (o viceversa si lo prefiere)

El trabajo del sistema que desea teclear es /System/Library/LaunchAgents/com.apple.ScreenSharing.plist

Tu plist debería ir en ~/Library/LaunchAgents o /Library/LaunchAgents dependiendo de si sólo quiere que se avise a un usuario o a todos los usuarios. También establecería LimitLoadToSessionType a Aqua .

Como menciona @jm666 - Growl puede hacer unas notificaciones muy bonitas con mucho control y transparencia, superposición, etc.

growlnotify --appIcon Screen\ Sharing "Screen Sharing" -m "is now active - click to dismiss" -s

Podrías ponerte muy elegante con un shell script para determinar la IP de origen, la fecha y la hora, registrar la conexión o hacer todo tipo de cosas divertidas ya que launchd tiene un gran soporte para shell así como para aplicaciones completas.

Un rápido y sucio Apple script podría ser bueno para las pruebas para asegurarse de que launchd está trabajando y siempre se puede pulir la presentación más tarde.

osascript -e 'tell application "System Events" to display alert "Incoming VNC session started" as warning buttons {"Cancel", "OK"} default button "OK" cancel button "Cancel" message "Screen Sharing is now active and someone can see and control this Mac until the menu bar icon of \"binoculars inside a monitor\" turns back into binoculars alone. "'

Consulte estos enlaces para más información sobre launchd y Diálogo AppleScript como referencia.

0voto

churnd Puntos 3464

Si está satisfecho con lo que le informa

netstat -a | grep vnc | grep ESTABLISHED

puedes usar la utilidad de la consola de OS X para leer este archivo. Simplemente envía el archivo de registro a /var/log/ o /Library/Logs y lo verás en la lista de registros de la Consola.

También puedes hacer que el sistema lleve la cuenta del tamaño del registro y lo vuelque automáticamente y comprima las versiones antiguas cuando se alcance un determinado tamaño.

Comprueba newsyslog si te interesa.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X