Applicazione per notificare all'utente la connessione VNC attiva

4

Voglio qualcosa di più visivo del binocolo molto sottile di Apple nel menu di stato in alto a destra quando c'è una connessione VNC in entrata attiva alla macchina.

Preferibilmente solo una finestra mobile che notifica all'utente che esiste una connessione VNC attiva e forse l'indirizzo IP. La soluzione migliore che ho trovato è eseguire il comando sottostante nel terminale. Ma questo non risolve il mio problema di monitoraggio in quanto devo andare attivamente a cercare i dati.

netstat -a | grep vnc | grep ESTABLISHED
    
posta Aeyoun 14.06.2011 - 12:39
fonte

3 risposte

4

Puoi sempre creare questo script ed eseguire da un terminale

#!/bin/bash

alertme() {
    say "Big brother watching"
}

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

e hai un avvertimento vocale. Se salvi lo script con l'estensione .command , puoi avviarlo dal Finder facendo doppio clic.

Puoi installare growl dalla directory Extras del pacchetto growlnotify. Puoi cambiare la voce nell'avviso su:

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

e ha ottenuto una finestra di notifica.

Oppure, puoi rendere il flusso di lavoro di Automator con script e shell shell; avviso finestra popup. :)

Oppure puoi utilizzare il seguente:

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

invece di netstat | grep e otterrà tempi di connessione e disconnessione esatti, come dopo, ma è necessario eseguirlo come admin ... (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
    
risposta data 14.06.2011 - 13:58
fonte
1

Poiché launchd avvia e interrompe il processo di condivisione dello schermo, puoi creare un nuovo processo di avvio che utilizza un dizionario KeepAlive con una clausola OtherJobEnabled per legare il tuo strumento di avviso al etichetta launchd com.apple.ScreenSharing.server

All'avvio di ScreenSharing, il tuo lavoro verrà avviato anche da launchd. (o viceversa se preferisci)

Il lavoro di sistema che desideri inserire è /System/Library/LaunchAgents/com.apple.ScreenSharing.plist

Il tuo plist dovrebbe andare in ~/Library/LaunchAgents o /Library/LaunchAgents a seconda se vuoi solo un utente avvisato, o tutti gli utenti avvisati. Vorrei anche impostare LimitLoadToSessionType in Aqua .

Come menzionato da @ jm666 - Growl può fare alcune notifiche molto belle con un sacco di controllo e trasparenza, sovrapposizione ecc.

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

Potresti diventare molto fantasioso con uno script di shell per determinare l'IP di origine, la data e l'ora, registrare la connessione o fare ogni genere di cose divertenti dal momento che launchd ha un grande supporto per gli script di shell e applicazioni complete.

Uno script Apple veloce e sporco può essere utile per i test per assicurarsi che launchd funzioni e puoi sempre lucidare la presentazione in un secondo momento.

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. "'

Vedi questi link per maggiori informazioni su launchd e finestra di dialogo di AppleScript come riferimento.

    
risposta data 14.06.2011 - 20:14
fonte
0

Se sei soddisfatto di ciò che viene segnalato da

netstat -a | grep vnc | grep ESTABLISHED

potresti usare utilmente la console OS X per leggere questo file. Basta inviare il file di log a / var / log / o / Library / Logs e lo vedrai nell'elenco dei log della Console.

Puoi anche far sì che il sistema tenga traccia delle dimensioni del log e lo capovolga automaticamente e comprima le vecchie versioni dopo che è stata raggiunta una determinata dimensione.

Controlla newsyslog se ti interessa.

    
risposta data 20.06.2011 - 05:47
fonte

Leggi altre domande sui tag