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

Материал из support.qbpro.ru
(Новая страница: «ак бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать неск...»)
 
Нет описания правки
 
Строка 1: Строка 1:
ак бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами.


Для начала, посмотрим кто находится в системе:
Для начала, посмотрим кто находится в системе:
 
w
sh1 lines
��
Вывод:
Вывод:
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


sh4 lines
��
Так же, можно использовать:
Так же, можно использовать:
 
who -u
sh1 lines
��
Вывод:
Вывод:
aptain  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)


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


-=== СПОСОБ 1 — Используем echo команду ==-
-=== СПОСОБ 1 — Используем echo команду ==-
Можно отправить сообщение другому пользователю следующим образом:
Можно отправить сообщение другому пользователю следующим образом:
 
# echo -e "\033[0;31m Can I reboot this server... OK? \033[0m" > /dev/pts/1
sh1 lines
��
Где:
Где:
 
echo -e «\033[0;31m Can I reboot this server… OK? \033[0m» — Команда.
echo -e «\033[0;31m Can I reboot this server… OK? \033[0m» — Команда.
/dev/pts/1 — Это открытая сессия пользователя.
/dev/pts/1 — Это открытая сессия пользователя.
* PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.
PS: Я использую в данном примере подсветку, чтобы можно было сразу ее увидеть и другому пользователю все было понятно.


-=== СПОСОБ 2 — Используем write команду ==-
-=== СПОСОБ 2 — Используем write команду ==-
Так же, можно использовать следующий пример:
Так же, можно использовать следующий пример:
 
# write captain pts/1
sh1 lines
��
Где:
Где:
 
captain — Юзер которому нужно отправить сообщение.
captain — Юзер которому нужно отправить сообщение.
pts/1 — Сессия данного юзера.
pts/1 — Сессия данного юзера.
Напишите сообщение и отправьте его через нажатие ‘Enter’,  и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать  утилиту write.
Напишите сообщение и отправьте его через нажатие ‘Enter’,  и оно будет отправлено в терминал юзера. Используйте Ctrl+D чтобы прервать  утилиту write.


Можно написать сообщение в файл (предположим — send_to_user.txt):
Можно написать сообщение в файл (предположим — send_to_user.txt):
 
# editor send_to_user.txt
sh1 lines
��
И потом, чтобы отправить данное послание, используйте:
И потом, чтобы отправить данное послание, используйте:
 
$ cat send_to_user.txt | write captain pts/1
sh1 lines
��
Очень простая и полезная тулза.
Очень простая и полезная тулза.


-=== СПОСОБ 3 — Используем wall команду ==-
-=== СПОСОБ 3 — Используем wall команду ==-
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all):
 
$ wall
sh2 lines
I will reboot this server at 02:00!
��
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D
Но данное сообщение будет отправлено только после того, как вы нажмете — Ctrl+D


Можно написать сообщение в файл (предположим — send_to_user.txt):
Можно написать сообщение в файл (предположим — send_to_user.txt):
 
# editor send_to_user.txt
sh1 lines
��
И потом, чтобы отправить данное послание, используйте:
И потом, чтобы отправить данное послание, используйте:
 
# cat send_to_user.txt | wall
sh1 lines
��
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.
Вот и все, статья «Отправить сообщение другому пользователю в Unix/Linux» завершена.


* [https://linux-notes.org/otpravit-soobshhenie-drugomu-pol-zovatelyu-na-servere-v-unix-linux/ Источник]
* [https://linux-notes.org/otpravit-soobshhenie-drugomu-pol-zovatelyu-na-servere-v-unix-linux/ Источник]

Текущая версия от 01:16, 15 марта 2024

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

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

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

Вывод:

aptain  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):

# editor 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):

# editor send_to_user.txt

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

# cat send_to_user.txt | wall

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