In un ambiente Linux, esistono scenari in cui più utenti lavorano contemporaneamente sul server tramite SSH. Tuttavia, a volte l'amministratore di sistema deve riavviare o arrestare il sistema a causa, ad es. manutenzione del sistema, aggiornamento del kernel, aggiunta o rimozione di hardware dal server. In questo caso, l'amministratore di sistema dovrebbe informare tutti gli utenti che hanno effettuato l'accesso per salvare il proprio lavoro. L'e-mail non si adatta a questa situazione, poiché devi prima scoprire chi ha effettuato l'accesso e quindi inviare loro e-mail. Inoltre, non sai quando l'utente leggerà l'e-mail. Fortunatamente, esiste un "muro" di comando Linux che ti consente di farlo facilmente.
Qui descriveremo l'uso del comando wall in Linux. Ricorda, il comando wall funziona allo stesso modo per tutte le distribuzioni Linux.
Nota :Il comando Wall visualizza il messaggio solo nella finestra Terminale degli utenti che hanno effettuato l'accesso. Gli utenti che lavorano solo su GUI, senza la finestra di Terminale aperta, non saranno in grado di vedere i messaggi.
Comando Linux Wall
Il comando Linux Wall consente di inviare un messaggio o il contenuto di un file a tutti gli utenti attualmente connessi. Se non viene specificato alcun file o messaggio, il comando wall legge il messaggio dallo stdin (standard input).
Sintassi dei comandi a muro
La sintassi per il comando wall è la seguente:
$ wall [options] [message-or-filename]
Invia un messaggio a tutti gli utenti
Per inviare un messaggio a tutti gli utenti attualmente connessi, digita muro seguito dal messaggio che vuoi inviare.
$ wall System is going down for 1-hour maintenance.
Questo comando invierà il messaggio a tutti gli utenti che hanno effettuato l'accesso con una finestra di Terminale aperta.
Nota :Per alcune distribuzioni Linux, devi eseguire il comando sopra come super utente. Inoltre, se un utente ha scelto di negare i messaggi ai propri Terminali (come usando il comando mesg), solo un utente sudo sarà in grado di inviare messaggi ai propri Terminali.
Di seguito sono riportati gli output visualizzati a due utenti "linuxways" e "ummara" che hanno effettuato l'accesso al server tramite SSH. Questi utenti stanno lavorando dal sistema che esegue Ubuntu e Debian.
Il comando wall legge anche il messaggio da stdin (ingresso standard). Per farlo, digita semplicemente muro e premi Invio .
$ wall
Successivamente, digita qualsiasi messaggio o messaggi che desideri inviare agli utenti che hanno effettuato l'accesso. Dopo aver digitato i messaggi, premi Ctrl+D per inviare quei messaggi.
this is first line this is second line .
Ecco l'output che tutti gli utenti che hanno effettuato l'accesso hanno ricevuto sul proprio Terminale.
Invia un messaggio da un file
Se ci sono dei messaggi che devi ripetere spesso, puoi semplicemente digitarli in un file. Quando devi inviare quei messaggi agli utenti che hanno effettuato l'accesso, chiama semplicemente quel file con il comando wall. Ricorda, avrai bisogno dei privilegi sudo se vuoi inviare un messaggio da un file.
$ sudo wall <filename>
Ad esempio, nell'output seguente, il contenuto del file è stato mostrato per la prima volta utilizzando il comando cat. Quindi per inviare il messaggio contenuto nel file, il nome del file viene passato al comando wall.
Questi sono gli output (dal file msg.txt ) ricevuto dagli utenti che hanno effettuato l'accesso.
Invia un messaggio a un gruppo
Invece di inviare il messaggio a tutti gli utenti che hanno effettuato l'accesso, puoi inviarlo solo ai membri di un gruppo che sono attualmente collegati al tuo sistema. La sintassi è la seguente:
$ wall -g [group] [message]
Ad esempio, per inviare un messaggio a un gruppo chiamato "sshusers", il comando sarebbe:
$ wall -g sshusers System is going down for 1 hour maintenance.
Tutti i membri del gruppo "sshusers" che sono attualmente collegati al server riceveranno il messaggio specificato.
Elimina banner
Il comando wall visualizza un banner prima di visualizzare un messaggio come si può vedere nella schermata seguente.
Per sopprimere questo banner, usa l'opzione -n con il comando wall:
$ wall -n <message>
Ad esempio, il comando seguente visualizzerà solo il messaggio specificato sopprimendo il banner.
$ wall -n System is going down for 1 hour maintenance.
Tutti gli utenti del Terminal che hanno effettuato l'accesso riceveranno il messaggio senza banner.
Visualizza informazioni sulla versione
Per visualizzare la versione del comando muro, utilizzare il seguente comando:
$ wall -V
L'output seguente mostra che la versione dell'utilità wall è 2.34.
Wall è una pratica utility che aiuta un amministratore di sistema multiutente a notificare rapidamente ad altri utenti di salvare il proprio lavoro prima dell'arresto o del riavvio del sistema. In questo articolo, abbiamo spiegato come utilizzare il comando wall per comunicare con gli utenti che hanno effettuato l'accesso. Spero che lo trovi interessante e utile.