Отправить сообщение другому пользователю на сервере в Unix/Linux

Отправить сообщение другому пользователю на сервере в Unix/Linux

Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.

Для начала, посмотрим кто находится в системе:

$ w

Вывод:

 18:07:26 up 38 days,  6:22,  2 users,  load average: 1.22, 1.24, 1.25
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
captain  pts/0    159.224.217.24   17:46    1.00s  0.45s  0.00s w
captain  pts/1    159.224.217.24   17:58    7:05   0.11s  0.11s bash -l

Так же, можно использовать:

$ who -u

Вывод:

captain  pts/0        2017-11-18 17:46 00:05      143820 (159.224.217.24)
captain  pts/1        2017-11-18 17:58   .        145964 (159.224.217.24)

Для примера, я залогинился на сервер дважды от одного и того же юзера.

-=== СПОСОБ 1 — Используем echo команду ==-

Можно отправить сообщение другому пользователю следующим образом:

# echo -e "\033[0;31m Can I reboot this server... OK? \033[0m" > /dev/pts/1

Где:

  • echo -e «\033[0;31m Can I reboot this server… OK? \033[0m» — Команда.
  • /dev/pts/1 — Это открытая сессия пользователя.

PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.

-=== СПОСОБ 2 — Используем write команду ==-

Так же, можно использовать следующий пример:

# write captain pts/1

Где:

  • captain — Юзер которому нужно отправить сообщение.
  • pts/1 — Сессия данного юзера.

Напишите сообщение и отправьте его через нажатие ‘Enter’,  и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать  утилиту write.

Можно написать сообщение в файл (предположим — send_to_user.txt):

# vim send_to_user.txt

И потом, чтобы отправить данное послание, используйте:

$ cat send_to_user.txt | write captain pts/1

Очень простая и полезная тулза.

-=== СПОСОБ 3 — Используем wall команду ==-

Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):

$ wall
I will reboot this server at 02:00!

Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D

Можно написать сообщение в файл (предположим — send_to_user.txt):

# vim send_to_user.txt

И потом, чтобы отправить данное послание, используйте:

$ cat send_to_user.txt | wall

Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.