ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Команда wall в Linux

Команда wall в Linux

wall – это утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей. Сообщения можно вводить либо на терминале, либо в содержимом файла. wall означает написать все, чтобы отправить сообщение только определенному пользователю, используйте команду write.

Обычно системные администраторы отправляют сообщения об обслуживании и просят пользователей выйти из системы и закрыть все открытые программы. Сообщения отображаются для всех вошедших в систему пользователей с открытым терминалом. Пользователи, использующие графическую среду рабочего стола без открытого терминала, не увидят сообщения. Каждый пользователь может управлять доступом на запись к своему терминалу с помощью утилиты mesg. Когда суперпользователь вызывает wallкоманду, все пользователи получают сообщения, независимо от их настроек mesg.

 

Трансляция сообщения

Синтаксис команды wall следующий:

wall [OPTIONS] [<FILE>|<MESSAGE>]

 

Если файл не указан, сообщение будет прочитано со стандартного ввода.

Самый простой способ передать сообщение – вызвать команду wall с сообщением в качестве аргумента:

wall "The system will be restarted in 10 minutes."
Broadcast message from root@linuxize.host (pts/0) (Sun Oct  4 19:22:07 2020):

The system will be restarted in 10 minutes.

 

Сообщение будет передано всем пользователям, которые в данный момент вошли в систему.
Чтобы увидеть всех вошедших в систему пользователей, выполните команду w или who.
Чтобы подавить баннер и отображать только вводимый вами текст для вошедших в систему пользователей, вызовите команду с параметром -n( –nobanner):

wall -n "The system will be restarted in 10 minutes."

 

The system will be restarted in 10 minutes.

 

Если вы хотите писать многострочные сообщения, вызывайте команду без аргумента:

wall

 

Команда wall будет ждать, пока вы введете текст. Когда вы закончите вводить сообщение, нажмите Ctrl+D, чтобы завершить программу и передать сообщение.

Вы также можете использовать перенаправление здесь-строки или перенаправить вывод другой команды в wall. Вот пример, показывающий, как использовать команду echo для трансляции многострочных сообщений:

echo "The system will be restarted in 10 minutes. \nPlease save your work."  | wall

 

Трансляция сообщения из файла

Если вы регулярно отправляете одни и те же сообщения, вы можете записать каждое из них в файл, чтобы вам не приходилось повторно набирать один и тот же текст. wall читает из файла только при вызове от имени root.

Чтобы транслировать содержимое файла, вызовите команду wall, за которой следует имя файла:

message1_file.txt
The system will be restarted in 10 minutes.

 

wall message1_file.txt

 

Broadcast message from root@linuxize.host (pts/0) (Sun Oct  4 19:25:06 2020):

The system will be restarted in 10 minutes.

 

Передача сообщения группе

Чтобы отправить сообщение только членам данной группы, запустите команду с параметром -g( –group), за которым следует имя группы. Например, чтобы писать только на терминалах членов группы «devs», вы должны запустить:

wall -g devs "The system will be restarted in 10 minutes."

 

Группа также может быть указана по ее GID (идентификатору группы).

 

Вывод

Команда wall записывает сообщение на терминалы всех вошедших в систему пользователей.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Exit mobile version