Отправить сообщение другому пользователю на сервере в Unix/Linux: различия между версиями
Vix (обсуждение | вклад) (Новая страница: «ак бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать неск...») |
Vix (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Так бывает, что на сервере работают и другие пользователи одновременно с вами. Допустим вам, необходимо выполнить перезагрузку ОС так,чтобы другие юзеры не пострадали и успели сохранить свои данные до ребута. Сейчас я расскажу как можно это сделать несколькими способами. | |||
Для начала, посмотрим кто находится в системе: | Для начала, посмотрим кто находится в системе: | ||
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 команду ==- | -=== СПОСОБ 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» — Команда. | |||
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 | |||
Где: | Где: | ||
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 | |||
И потом, чтобы отправить данное послание, используйте: | И потом, чтобы отправить данное послание, используйте: | ||
$ cat send_to_user.txt | write captain pts/1 | |||
Очень простая и полезная тулза. | Очень простая и полезная тулза. | ||
-=== СПОСОБ 3 — Используем wall команду ==- | -=== СПОСОБ 3 — Используем wall команду ==- | ||
Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all): | Для отправки широковещательного сообщения всем подключенным пользователям, используется команда wall (wall = write to all): | ||
$ wall | |||
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 | |||
И потом, чтобы отправить данное послание, используйте: | И потом, чтобы отправить данное послание, используйте: | ||
# cat send_to_user.txt | wall | |||
Вот и все, статья «Отправить сообщение другому пользователю в 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» завершена.