Надсилання повідомлень між 2 комп'ютерами Ubuntu (стиль стилю нетто)


28

Я намагаюся знайти спосіб надіслати повідомлення (як спливаюче повідомлення) з 1 ПК на інший. обидва використовують Ubuntu. Вже спробував smbclient спосіб, але це працює лише між комп'ютером Linux та Windows PC. Мені потрібен спосіб надсилання повідомлень з ПК Ubuntu на інший ПК Ubuntu. Подібно до способу Windows Net Send.


notify-send надсилає спливаюче вікно на мій термінал, але я хотів надіслати спливаюче вікно іншим користувачам (можливо, це список конкретних користувачів), але не використовуючи sudo або ssh, чи є у мене альтернатива .A команда, яка працює як "notify- надіслати ", але надіслати повідомлення на інший користувацький термінал.

Відповіді:


27

Встановити sshта libnotify-bin(через термінал):

sudo apt-get install ssh libnotify-bin

на обох комп'ютерах.

(Можливо, ви вже libnotify-binвстановили. У мене вже було.)

Потім SSH (через термінал) перейдіть на інший комп'ютер:

ssh <user name>@<ip address>

А потім, коли ви ввійшли в систему, введіть:

export DISPLAY=:0
notify-send "Title of message" "message text"

Щаслива розсилка повідомлень!
(або лякаючи XD)


1
Хоча це дуже розумна відповідь, я намагаюся знайти спосіб надіслати його без ssh. Із варіантом ssh я вже знаю, що він працює (наприклад, використовуючи стіну), але ваше повідомлення-відправлення дуже розумне.
Луїс Альварадо

1
Після пошуку кількох методів цей найкращий. Через 2 причини: 1. ssh дає мені певну безпеку щодо цього і 2. Використання DISPLAY дозволяє вибрати, яке відео буде показувати повідомлення. Я протестував за допомогою ssh user @ ip / domain 'DISPLAY =: 0 сповістити-надіслати "TITLE" "ПОВІДОМЛЕННЯ"'
Луїс Альварадо

Це може працювати в домашніх умовах, але у великій організації, я не впевнений, чи можна встановити SSH на кожній клієнтській системі, у мене є досвід, оскільки в моєму кабінеті є близько 100 комп'ютерів, має бути інший спосіб надсилання повідомлення з встановленням
SSh

Ознайомтеся з моєю відповіддю щодо досягнення цього без ssh! :)
Метт

31

Я читав, що ти хотів це зробити без SSH, я вважаю, що у мене є рішення: netcat[nc] Він за замовчуванням поставляється з Ubuntu.

Спочатку нам потрібен "демон", щоб запустити на задньому плані. По-друге, нам потрібна програма, щоб сповіщення спливало. Я zenityвстановив. Якщо ви цього не зробите, будь ласка, встановіть його або відредагуйте сценарій, щоб використовувати все, що вам подобається [колишній xmessage, але це некрасиво]. Далі вставте це в 'daemon.sh':

#!/bin/bash
port=3333
nc -l $port | while read msg; do zenity --info --text "$msg"; done

Тепер зробіть його виконуваним chmod +x daemon.sh, тепер запустіть його у фоновому режимі:./daemon.sh &

Тепер ви закінчили! Що ж, вам потрібно це зробити на кожному комп’ютері. Вам також захочеться автоматизувати старт демона. Відкрийте програми «запуску» у меню та додайте свій сценарій. Після цього, щоб надіслати повідомлення на інший комп'ютер, введіть:

nc 192.168.1.X 3333потім введіть своє повідомлення та натисніть Enter. У кожному рядку введення з'явиться повідомлення. Щоб вийти з nc, натисніть Ctrl + Cабо Ctrl + D.

Просто переконайтеся, що замініть 192.168.1.X на справжній локальний IP іншого ПК. [Ви можете використовувати ifconfigдля пошуку IP-адреси]

Крім того, можна зробити ще один сценарій, скажімо, message.sh. У цьому вставте:

#!/bin/bash
nc 192.168.2.X 3333

Потім chmod +x message.sh. Тоді ви можете просто ввести, ./message.shа потім набрати своє повідомлення, потім ввести, і ваше повідомлення буде надіслане. Крім того, тепер, коли я думаю про це, ви також можете додати звукове повідомлення. Я б рекомендував mplayer, це медіаплеєр CLI. Це не повинно бути занадто важким, але якщо у вас є якісь питання, будь ласка, не соромтеся запитати!


1
Це акуратне рішення, але я якось віддаю перевагу SSH через цілі безпеки.
ohitsanazn

1
Хтось сказав мені, що ви можете використовувати socatзамість netcat для шифрування SSL. Я ніколи не вдивлявся в це, хоча.
Метт

3
Оце Так! прекрасно зроблено! Я трохи змінив його, щоб працювати з notify-osd:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Хуршид Алам

Або з ip-адресою дистанційного з'єднання:while true; do nc -l -v 3333 2> status | while read msg; do ip=$(cat status | grep -o -P '(?<=from).*(?=port)') && notify-send "$ip" "$msg" -i gtk-network; done ; done
Хуршид Алам

Ви можете використовувати, cryptcatщоб ваше спілкування було зашифровано паролем. Це працює так само, якnc
Анонімний Платипус

11

Використовуйте ncдля надсилання тексту між двома комп'ютерами в одній мережі (без шифрування).

На приймальному комп'ютері зробіть

nc -l 3333

На комп’ютері- відправника зробіть

nc 192.168.1.XX 3333

тоді просто почніть вводити текст і текст з’явиться на іншому комп'ютері (після натискання клавіші Enter), поки ви не натиснете ctlr + c.


Ви можете отримати IP -адресу приймаючого комп'ютера hostname -I(запустіть його на приймальному комп'ютері).

Вам не потрібно використовувати порт 3333, використовувати будь-яке число від 1025 до 65535 включно.

Пам'ятайте, що це не зашифровано . Будь-який комп'ютер у вашій мережі може бачити, який текст ви передаєте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.