Artigos > Broadcast via SSH

Você administra um servidor Linux. Vários usuários o acessa via SSH. Surge a necessidade de rebootá-lo em, digamos, 20 minutos. Você precisa avisar seus usuários de forma que finalizem suas atividades para não perderem seus trabalhos.

Avisando todos os usuários

Numa situação como essa, não há nada mais prático do que um broadcast, e para enviar um broadcast à todos usuários logados no SSH use:

echo "Reboot do servidor em 20 minutos" | wall

Os usuários visualizarão isto:

Independente do que o usuário estiver fazendo, o broadcast lhe será exibido. Para fechá-lo é preciso teclar Enter, de forma que não se pode dizer que o aviso não foi visualizado.

Neste exemplo em que criei uma situação de reinício de um servidor em 20 minutos, pode-se agendar o reinício com o comando abaixo:

shutdown -r +20

Desta forma, quando o contador chegar em 15 minutos para o reinício, um novo aviso será exibido para os usuários, como veremos na imagem abaixo:

Broadcast para usuários específicos

Você pode enviar mensagens à um usuário em específico. Primeiramente é preciso identificar o PTS desse usuário. Utilize o comando “who” para saber o PTS e rode o comando abaixo para enviar a mensagem:

echo "Cara, pare de gravar arquivos no /tmp" >> /dev/pts/X

No caso, substitua o /dev/pts/x pelo número do PTS do usuário. Exemplo; O usuário joao está no PTS/3. Nesse caso, minha mensagem para o joao seria:

echo "Joao, pare de gravar arquivos no /tmp" >> /dev/pts/3
Cuidado com acentuação no terminal. Algumas fontes e/ou encodings não aceitam acentuação.

Esses broadcasts deve ser utilizados para o bem. Ou seja, o seu mal uso pode atrapalhar o trabalho dos usuários. Portanto, o utilize com muita moderação.

Deixe uma resposta

This site uses Akismet to reduce spam. Learn how your comment data is processed.