Nachrichten zwischen 2 Ubuntu-PCs senden (Net Send Style)

28

Ich versuche einen Weg zu finden, um eine Nachricht (wie eine Popup-Nachricht) von einem PC zu einem anderen zu senden. beide benutzen Ubuntu. Habe schon den smbclient Weg ausprobiert aber das funktioniert nur zwischen einem Linux PC zu einem Windows PC. Ich brauche eine Möglichkeit, Nachrichten von einem Ubuntu-PC an einen anderen Ubuntu-PC zu senden. Ähnlich wie bei Windows Net Send.

Luis Alvarado
quelle
notify-send sendet ein Popup auf meinem Terminal, aber ich wollte ein Popup an andere Benutzer senden (möglicherweise eine Liste bestimmter Benutzer), aber ohne sudo oder ssh habe ich eine Alternative. Ein Befehl, der als "notify-" funktioniert. senden ", um jedoch eine Nachricht auf einem anderen Benutzerterminal zu senden.

Antworten:

27

Installieren sshund libnotify-bin(über Terminal):

sudo apt-get install ssh libnotify-bin

auf beiden Computern.

(Möglicherweise haben libnotify-binSie bereits installiert. Meins hatte es bereits.)

Dann SSH (über das Terminal) in den anderen Computer:

ssh <user name>@<ip address>

Und wenn Sie angemeldet sind, geben Sie Folgendes ein:

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

Viel Spaß beim Senden von Nachrichten!
(oder Angst XD)

ohitsanazn
quelle
1
Auch wenn dies eine sehr intelligente Antwort ist, versuche ich einen Weg zu finden, um sie ohne ssh zu senden. Mit der Option ssh weiß ich bereits, dass es funktioniert (z. B. mit wall), aber Ihr Benachrichtigungsversand ist sehr klug.
Luis Alvarado
1
Nach der Suche nach mehreren Methoden ist diese die beste. Aus zwei Gründen: 1. ssh gibt mir Sicherheit, dies zu tun, und 2. Die Verwendung von DISPLAY ermöglicht die Auswahl, zu welchem ​​Video die Nachricht angezeigt wird. Ich habe mit ssh user @ ip / domain 'DISPLAY =: 0 notify-send "TITLE" "MESSAGE"' getestet
Luis Alvarado
Es kann in einer häuslichen Umgebung funktionieren, aber in einer großen Organisation bin ich nicht sicher, ob es möglich ist, SSH auf jedem Client-System zu installieren. Ich habe Erfahrung damit, dass es in meinem Büro ungefähr 100 Coms gibt. Es sollte einen anderen Weg zum Senden geben eine Nachricht ohne Installation von SSh
The_skinny_man
Schauen Sie sich meine Antwort an, um dies ohne ssh zu erreichen! :)
Matt
31

Ich habe gelesen, dass Sie dies ohne SSH tun wollten. Ich glaube, ich habe eine Lösung: netcat[nc] Es wird standardmäßig mit Ubuntu geliefert.

Zuerst brauchen wir einen "Daemon", um im Hintergrund zu laufen. Zweitens benötigen wir ein Programm, mit dem die Warnung angezeigt wird. Ich habe zenityinstalliert. Wenn Sie dies nicht tun, installieren Sie es bitte oder bearbeiten Sie das Skript, um zu verwenden, was immer Sie möchten [ex xmessage, aber das ist hässlich]. Als nächstes fügen Sie dies in 'daemon.sh' ein:

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

Machen Sie es chmod +x daemon.shjetzt ausführbar und führen Sie es im Hintergrund aus:./daemon.sh &

Jetzt bist du fertig! Nun, Sie müssen dies tatsächlich auf jedem Computer tun . Sie möchten auch den Start des Daemons automatisieren. Öffnen Sie die Startanwendungen über das Menü und fügen Sie Ihr Skript hinzu. Wenn Sie fertig sind, geben Sie Folgendes ein, um eine Nachricht an den anderen Computer zu senden:

nc 192.168.1.X 3333Geben Sie dann Ihre Nachricht ein und drücken Sie Enter. Bei jeder Eingabezeile wird eine Nachricht eingeblendet. Um nc zu verlassen, drücken Sie Ctrl + Coder Ctrl + D.

Stellen Sie einfach sicher, dass 192.168.1.X durch die reale lokale IP des anderen PCs ersetzt wird. [Sie können verwenden ifconfig, um die IP-Adresse zu finden]

Sie können auch ein anderes Skript erstellen, z message.sh. Darin einfügen:

#!/bin/bash
nc 192.168.2.X 3333

Dann chmod +x message.sh. Dann können Sie einfach ./message.sheingeben, dann Ihre Nachricht eingeben, dann eingeben, und Ihre Nachricht wird gesendet. Nun, da ich darüber nachdenke, können Sie auch eine akustische Benachrichtigung hinzufügen. Ich würde empfehlen mplayer, es ist ein CLI Media Player. Sollte nicht zu schwer zu verstehen sein, aber wenn Sie Fragen haben, zögern Sie bitte nicht zu fragen!

Matt
quelle
1
Dies ist eine gute Lösung, aber aus Sicherheitsgründen bevorzuge ich SSH.
Ohitsanazn
1
Jemand hat mir gesagt, dass Sie socatanstelle von Netcat SSL-Verschlüsselung verwenden können. Ich habe es mir aber nie angesehen.
Matt
3
Wow! schön gemacht! Ich habe es ein wenig geändert, um mit notify-osd zu arbeiten:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
Khurshid Alam
Oder mit IP-Adresse des Remote-Connectors: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
Khurshid Alam
Mit können Sie cryptcatIhre Kommunikation mit einem Passwort verschlüsseln. Es funktioniert genauso wienc
Anonymous Platypus
11

Dient nczum Senden von Text zwischen zwei Computern im selben Netzwerk (ohne Verschlüsselung).

Auf dem empfangenden Computer tun

nc -l 3333

Auf dem sendenden Rechner tun

nc 192.168.1.XX 3333

Beginnen Sie einfach mit der Eingabe und der Text wird auf dem anderen Computer angezeigt (nachdem Sie die Eingabetaste gedrückt haben), bis Sie Strg + C drücken.


Sie können die IP des empfangenden Computers mit abrufen hostname -I(führen Sie diese auf dem empfangenden Computer aus).

Sie müssen nicht Port 3333 verwenden, sondern eine beliebige Zahl zwischen 1025 und 65535 ( einschließlich).

Denken Sie daran, dass dies nicht verschlüsselt ist . Jeder Computer in Ihrem Netzwerk kann sehen, welchen Text Sie übertragen.

Boris
quelle