Envie mensagens entre 2 PCs Ubuntu (estilo de envio líquido)


28

Estou tentando encontrar uma maneira de enviar uma mensagem (como uma mensagem pop-up) de 1 PC para outro. ambos estão usando o Ubuntu. Já tentei da maneira smbclient, mas isso só funciona entre um PC Linux e um PC Windows. Preciso de uma maneira de enviar mensagens de um PC Ubuntu para outro PC Ubuntu. Semelhante à maneira do Windows Net Send.


notify-send envia um pop-up no meu terminal, mas eu queria enviar um pop-up para outros usuários (pode ser uma lista de usuários específicos), mas sem usar o sudo ou ssh, tenho alguma alternativa. Um comando .A que funciona como "notify- enviar "mas para enviar mensagem em outro terminal do usuário.

Respostas:


27

Instale sshe libnotify-bin(via terminal):

sudo apt-get install ssh libnotify-bin

nos dois computadores.

(Você já deve ter libnotify-bininstalado. O meu já o possuía.)

Em seguida, SSH (via terminal) no outro computador:

ssh <user name>@<ip address>

E quando você estiver conectado, digite:

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

Feliz envio de mensagens!
(ou assustando XD)


1
Mesmo que essa seja uma resposta muito inteligente, estou tentando encontrar uma maneira de enviá-la sem o ssh. Com a opção ssh, eu já sei que funciona (usando o wall, por exemplo), mas o seu envio de notificação é muito inteligente.
— Luis Alvarado

1
Depois de pesquisar vários métodos, este é o melhor. Por duas razões: 1. O ssh me dá um pouco de segurança ao fazer isso e 2. O uso do DISPLAY permite selecionar para qual vídeo a mensagem será exibida. Eu testei usando usuário ssh @ ip / domínio 'DISPLAY =: 0 notificar-send "TITLE" "MENSAGEM"'
— Luis Alvarado

Pode funcionar em um ambiente doméstico, mas em uma organização grande, não tenho certeza se é possível instalar o SSH em todos os sistemas clientes, tenho experiência, pois no meu escritório existem cerca de 100 coms, deve haver outra maneira de enviar uma mensagem com a instalação do SSh
— The_skinny_man 26/10/11

Confira minha resposta para fazer isso sem ssh! :)
— Matt

31

Eu li que você queria fazer isso sem SSH, acredito que tenho uma solução: netcat[nc] Ele vem com o Ubuntu por padrão.

Primeiro, precisamos de um "daemon" para executar em segundo plano. Segundo, precisamos de um programa para fazer o alerta aparecer. Eu zenityinstalei. Caso contrário, instale-o ou edite o script para usar o que quiser [ex xmessage, mas isso é feio]. Em seguida, cole isso em 'daemon.sh':

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

Agora, torne-o executável chmod +x daemon.sh, agora execute-o em segundo plano:./daemon.sh &

Agora você está pronto! Bem, você realmente precisa fazer isso em cada computador. Você também desejará automatizar o início do daemon. Abra os aplicativos de 'inicialização' no menu e adicione seu script. Feito isso, para enviar uma mensagem para o outro computador, digite:

nc 192.168.1.X 3333digite sua mensagem e pressione Enter. Cada linha de entrada fará aparecer uma mensagem. Para sair de nc, pressione Ctrl + Cou Ctrl + D.

Apenas certifique-se de substituir 192.168.1.X pelo IP local real do outro PC. [Você pode usar ifconfigpara encontrar o endereço IP]

Você também pode criar outro script, digamos message.sh,. Nesse caso, cole:

#!/bin/bash
nc 192.168.2.X 3333

Então chmod +x message.sh. Depois, basta digitar ./message.sh, digitar sua mensagem, inserir e a mensagem será enviada. Além disso, agora que penso nisso, você também pode adicionar uma notificação sonora. Eu recomendaria mplayer, é um media player CLI. Não deve ser muito difícil de descobrir, mas se você tiver alguma dúvida, não hesite em perguntar!


1
Essa é uma solução interessante, mas eu prefiro o SSH por motivos de segurança.
— ohitsanazn

1
Alguém me disse que você pode usar em socatvez do netcat, para criptografia SSL. Eu nunca olhei para isso, no entanto.
— Matt

3
Uau! bem feito! Eu mudei um pouco para trabalhar com notificar-OSD:nc -l $port | while read msg; do notify-send "$HOSTNAME" "$msg" -i gtk-network; done
— Khurshid Alam

Ou com endereço IP do conector remoto: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

Você pode usar cryptcatpara tornar sua comunicação criptografada com uma senha. Funciona da mesma maneira quenc
— Platypus anônimo

11

Use ncpara enviar texto entre dois computadores na mesma rede (sem criptografia).

No computador receptor, faça

nc -l 3333

No computador de envio, faça

nc 192.168.1.XX 3333

basta começar a digitar e o texto será exibido no outro computador (depois que você pressionar enter) até pressionar ctlr + c.


Você pode obter o IP do computador receptor hostname -I(execute-o no computador receptor).

Você não precisa usar a porta 3333, use qualquer número entre 1025 e 65535, inclusive.

Lembre-se de que isso não é criptografado . Qualquer computador na sua rede pode ver o texto que você está transferindo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.