Executando comandos locais no OSX quando o comando for concluído na sessão ssh

Executando comandos locais no OSX quando o comando for concluído na sessão ssh

No meu laptop OS/X, posso digitar "dizer concluído" e meu Mac diz "concluído".

Localmente, eu apenas faria:

do-something.sh && say done

E isso me permite mexer em janelas/desktops separados até que o script termine.

Mas agora eu faço ssh do meu mac para uma máquina Linux remota. O que eu quero é poder dizer ao meu Mac para executar "dizer concluído" quando um comando específico for concluído. Alguma boa maneira de fazer isso?

Responder1

Gorjeta para um colega de trabalho, A Golden, que surgiu com isso imediatamente. Este é um recortar e colar da resposta deles, que funciona e acerta completamente.

I picked "say-hi-locally" and set it up on my linux server as:
alias say-hi-locally="echo EMIT SAY HI"

Then, since I use ITerm2 as my local terminal, I set up a trigger in ITerm2 with the regexp "EMIT SAY HI" and told that to run the local command "say hi"

Now I can do:
do-something.sh; say-hi-locally

and when it finishes it will echo "EMIT SAY HI" which ITerm2 will then pick up and then my computer says "hi" to me! :-)

Responder2

No seu Mac, inicie um servidor TCP que enviará tudo o que receber para say:

mac $ while true; do nc -l 1234 | say; done

Então, quando você usar SSH, use -Rpara encaminhar a porta 1234 para o seu servidor:

mac $ ssh -R 1234:localhost:1234 linux

Agora seu servidor Linux deve ter um túnel para o servidor nc em seu Mac e pode ser usado ncpara enviar texto para ele:

linux $ echo done | nc localhost 1234

Responder3

você precisará de um servidor ssh no seu mac. Então você pode fazer o seguinte:

[you@mac]$ ssh linux
[you@linux]$ interactive_cmd; ssh mac say done

Você faz login no seu host Linux, executa o comando, quando terminar, o ssh do host Linux volta para o seu mac e executa o saycomando.

Responder4

ssh linux do-something.sh && say done

parece fazer o que você quer. Implementar alguma comunicação entre o host remoto e o seu Mac não parece viável.

Se você deseja executar mais comandos e está preocupado com a latência, uso ControlMastere ControlPersistopções (muitas perguntas sobre isso já foram respondidas).

informação relacionada