Inviare messaggi in remoto via SSH in stile “net send”

Avete accesso a un sistema Linux via SSH e volete inviare qualche messaggio all’utente che è fisicamente davanti al suo monitor?

Niente di difficile: sfruttiamo X! Una volta connessi al sistema remoto possiamo fare uso del seguente comando:

xmessage "Ehm" -display :0

Il parametro “display” è il più importante, perché indica su quale schermo X mostrare la finestra. Se vogliamo anche che l’utente clicchi su un pulsante per rispondere, possiamo fare qualcosa del genere:

xmessage "Posso spegnerti il computer?" -buttons "Si,No,Forse" -print -display :0

L’unico problema, con xmessage, è che l’interfaccia grafica fa un po’ schifo:

Possiamo risolvere utilizzando un tool differente, ovvero zenity. È abbastanza famoso, ma è sempre possibile che sul sistema remoto non sia installato. In tal caso è necessario installarlo, altrimenti l’unica soluzione resta xmessage.

Zenity ha potenzialità enormi. Tanto per fare un esempio, oltre a mostrare messaggi può mostrare finestre con campi di testo, barre di progresso, selezione di file, e molto altro. Qui mi limiterò all’esempio più banale… ma per fare qualcosa di più avanzato basta una sana lettura del manuale.

zenity --info --text "Sono la tua coscienza" --title "Ciao" --display :0

Tutti i comandi descritti fanno sì che i messaggi “blocchino” il terminale, non permettendo di inserire ulteriori comandi finché la finestra non viene chiusa. Se non vogliamo questo comportamento, possiamo aggiungere il carattere “&” in coda al comando, ad esempio così:

xmessage "Ehm" -display :0 &

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *