A maneira mais elegante de copiar um arquivo para um host remoto, em seguida, executá-lo

2

Eu me encontro realizando essa ação parecida com o REPL com bastante frequência:

vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# realizing it wasn't quite right
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# repeat many times

Eu estava prestes a começar a escrever um script de shell para simplificar isso, mas queria saber se alguém mais inteligente do que eu resolveu esse problema com mais elegância.

Qual a sua solução? Além do emacs:)

EDIT: Por que não basta editar meu arquivo no host remoto? Simples, os hosts que recebem meus scripts nem sempre terão um ambiente de desenvolvimento configurado, portanto, neste caso, o host pode não ter todas as minhas personalizações de vim; às vezes, será código C em vez de um script de shell, o que significa que meu fluxo de trabalho se parece com:

vim foo.c
make
scp foo host:/tmp/foo
ssh host /tmp/foo
# repeat

É por isso. Eu acho que quero algo com uma interface como:

edit_loop foo.c --make --copy-and-run=host:/tmp/foo

O que você acha?

    
por mbac32768 21.06.2010 / 16:21

3 respostas

3

ssh remotehost bash < foo.sh
    
por 18.07.2010 / 04:56
2

Etapa 1: monte seu host remoto como uma pasta local usando o SSH-FUSE.

Etapa 2: vim ssh-mount/foo.sh

Etapa 3: de um segundo terminal ou bifurcação do vim, execute ssh host:.../foo.sh

Enxagúe e repita.

Link : link

    
por 21.06.2010 / 16:41
2

Você não precisa repetidamente scp para o servidor; deixe o Vim lidar com isso automaticamente!

vim scp://user@host/path/to/file

Você pode executar ssh user@host em um terminal separado e executar make ou /path/to/file .

Se você precisar de um ambiente de criação que não esteja disponível no servidor, verifique a resposta anterior sobre sshfs

.     
por 18.07.2010 / 04:54

Tags