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 &

Un pensiero su “Inviare messaggi in remoto via SSH in stile “net send”

  1. Hiya! Quick question that’s totally off topic. Do you know
    how to make your site mobile friendly? My blog looks weird when browsing from
    my iphone. I’m trying to find a template or plugin that might be able to resolve
    this problem. If you have any suggestions, please share.
    Appreciate it!

Lascia un commento

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