Receber notificações de uma máquina remota como um evento local

1

O que eu quero alcançar é receber notificações diferentes de uma máquina remota sobre o ssh. Por exemplo, quando o trabalho de longa duração terminar.

Uma maneira é enviar uma mensagem por xmpp e ter um cliente jid em uma máquina local. Eu quero fazer isso sem qualquer servidor intermediário. Eu quero obter essas notificações via mecanismo de notificação do sistema nativo, assim quando o evento gera eu recebo um pop-up do sistema, como o que eu uso:

echo 'message:hi' | zenity --notification --listen

Ou:

notify-send subject message

Estes funcionam localmente, mas não com a sessão remota fora do curso.

Não estou disponível na rede para um servidor que estou conectando, por isso não posso me conectar novamente ao SSH e executar o comando notify-send .

Estou tentando resolver isso encaminhando a porta local para uma máquina remota e gravando um pequeno aplicativo servidor / cliente. O cliente enviará uma mensagem para uma porta encaminhada e o servidor na minha máquina chamará notify send com a mensagem recebida como argumento. Mas isso parece uma reinvenção da roda, mas não consegui encontrar uma solução. Talvez seja possível conseguir com a configuração do DBUS.

    
por Glueon 05.06.2015 / 00:05

2 respostas

0

Instale rsyslog , atribua um servidor como um servidor de registro central, atualize rsyslog.conf nos clientes para encaminhar o syslog para o servidor central. Então faça o processamento lá.

Ou você pode modificar o syslog.conf do syslog para encaminhar mensagens críticas para pipes nomeados e, assim que houver algo no pipe nomeado, faça algo com / email.

#syslog.conf
...
*.crit |/PipeCriticalMessages
...

Em seguida, você pode ter um processo que consome os dados no canal ou alimentá-los em uma plataforma de entrada [por exemplo, Apache's Flume se você tiver grandes quantidades de dados].

    
por 05.06.2015 / 15:28
0

Suponha (apenas porque a criação de log é uma prática comum) seu aplicativo (no servidor remoto) grava cada evento em um arquivo. Portanto, cada nova linha nesse arquivo é uma notificação desejada. O truque:

ssh my.remote.server 'tail -f /path/to/notifications/log' | while read line; do notify-send 'Server says' "$line"; done

Assim, uma vez que uma linha nova aparecer no log no servidor, você verá o pop-up na área de trabalho local.

    
por 05.06.2015 / 15:51

Tags