Envie mensagens urgentes a todos no Linux com o comando `wall`

Precisa comunicar algo de forma imediata a todos os utilizadores conectados ao sistema? O comando `wall` no Linux oferece uma abordagem mais direta do que o e-mail, enviando a mensagem diretamente para os terminais de todos os utilizadores ativos, garantindo que a mensagem seja notada por todos que estejam a usar um terminal no sistema.

O Comando `wall`

Se necessita de enviar uma mensagem urgente a todos os utilizadores conectados ao seu computador, como o faz de forma eficaz? O e-mail nem sempre é a solução ideal, pois não garante leitura imediata. Se a informação precisa ser transmitida instantaneamente, o e-mail não é o meio mais apropriado. Além disso, o envio de e-mails pode sobrecarregar as caixas de entrada de utilizadores que não precisam de ver a mensagem naquele momento.

Identificar quem está conectado e de onde, requer um certo esforço e tempo. O seu sistema pode estar fisicamente localizado em Lisboa, mas pode ter utilizadores remotos a trabalhar a partir do Porto. Como, então, pode enviar uma mensagem direcionada especificamente aos utilizadores conectados?

O Linux, tal como outros sistemas operacionais similares ao Unix, oferece uma solução simples para este problema. O comando `wall` funciona como um telegrama direto, garantindo a entrega de uma mensagem a todos os utilizadores de terminal, colocando a mensagem diretamente na sua frente. Os utilizadores não conseguem ignorá-la, e tem a certeza de que a mensagem foi recebida. Não é necessário que abram qualquer aplicação para verificar a existência de uma mensagem.

A entrega é feita de forma tão discreta como uma torta de creme na cara.

Como Enviar uma Mensagem

O sistema utilizado para este artigo foi baseado no Fedora Linux, mas o comando `wall` funcionará da mesma forma em outras distribuições.

Uma pequena diferença que pode encontrar é que algumas distribuições Linux exigem o uso de `sudo` para enviar uma mensagem a partir de um ficheiro de texto, enquanto outras exigem sempre o uso de `sudo` com o comando `wall`. Esta é uma particularidade das distribuições Linux e não do funcionamento do comando em si.

Para enviar uma mensagem a todos os utilizadores, digite `wall`, um espaço, e a mensagem que deseja enviar. No Fedora Linux, terá de usar `sudo`.

sudo wall Impressora principal offline até novo aviso.

A mensagem será enviada para todos os utilizadores que tenham um terminal aberto.

Os utilizadores locais Ana e Rui recebem a mensagem, assim como o utilizador remoto João, que está a trabalhar num computador com Ubuntu.



Todos recebem a mensagem em simultâneo, sem necessidade de verificar se a viram.

Enviar uma Mensagem a partir de um Ficheiro

Pode preparar a sua mensagem num ficheiro de texto e guardá-la para envio. Caso tenha mensagens recorrentes, pode criar uma biblioteca com mensagens predefinidas, evitando assim ter de as digitar repetidamente.

A mensagem no ficheiro `mensagem.txt` foi visualizada no terminal usando o comando `cat`, para garantir que é a mensagem correta.

A mensagem é então enviada, passando o nome do ficheiro de texto como parâmetro para o comando `wall`:

cat mensagem.txt
sudo wall mensagem.txt

Como antes, os utilizadores locais Ana e Rui (e todos os outros com um terminal aberto), assim como o utilizador remoto João, recebem a mensagem.



Boas Práticas de Utilização

Dado que o comando `wall` envia mensagens para todos os terminais, o impacto pode ser surpreendente. A utilização do comando `wall` deve ser feita com moderação e apenas em situações de necessidade real. O uso excessivo pode rapidamente tornar-se irritante.

Uma mensagem enviada com `wall` será sobreposta a tudo o que estiver no terminal do utilizador. Embora não altere o texto, irá obscurecê-lo. Este comportamento pode ser alarmante para utilizadores que desconheçam o comando.

Imagine que um dos seus utilizadores locais está a editar um ficheiro importante com o Vi quando a mensagem de `wall` é enviada.

A mensagem aparece no meio do ficheiro.

Para repor a visualização correta, o utilizador só precisa de deslocar a página um pouco para cima e para baixo.

É fácil repor a tela e continuar a trabalhar, mas interrupções constantes desta natureza irão gerar frustração nos utilizadores.

Apesar da sua utilidade, o comando `wall` deve ser utilizado com moderação.

E Quanto aos Ambientes Gráficos?

O comando `wall` atinge todos aqueles com um terminal aberto, mas não afetará quem estiver a usar um ambiente gráfico sem uma janela de terminal aberta.

Se alguém estiver num ambiente gráfico, e tiver um terminal aberto, verá a mensagem nesse terminal, nada mais. Não utilize o comando `wall` para atingir utilizadores fora do terminal.

O método não é sutil, mas garante a entrega da mensagem, especialmente num ambiente de terminal tradicional.