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.

Luis Alvarado
fonte
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)

ohitsanazn
fonte
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!

Matt
fonte
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.

Boris
fonte