Como posso transformar um arquivo na primeira máquina com uma ferramenta na segunda máquina em uma linha sobre o ssh?

1

Eu tenho algumas ferramentas de arquivo em uma máquina de hortelã que eu prefiro não instalar no meu laptop mac. Principalmente por causa da vastidão do apt-get e do baixo risco de falha na instalação. De qualquer forma, de vez em quando eu tenho um arquivo que eu quero processar no local usando alguma ferramenta remota. Ambas as máquinas podem se conectar umas com as outras, então eu estava pensando que deveria haver algum script ou ferramenta lá fora que me permitisse digitar algo como remote [file] [tool & args] para enviar meu arquivo para a outra máquina, processá-lo e, em seguida, obtê-lo de volta.

    
por sh54 14.07.2011 / 22:46

4 respostas

3

Se a ferramenta for um filtro simples, você poderá usá-la normalmente, mas por cima do ssh.

ssh user@host somefilter < infile > outfile

Se ele espera um nome de arquivo, mas não precisa procurar por ele ou o arquivo de saída, então você pode (ab) usar o bash para isso.

ssh user@host bash -c "sometool <(/dev/stdin) -o >(/dev/stdout)" < infile > outfile

Caso contrário, você terá que transferir o arquivo para ou do outro sistema.

    
por 14.07.2011 / 22:58
2

O conceito UNIX é fazer uma coisa e fazê-lo silenciosamente. Você pode então construir suas próprias ferramentas com base nesses processos simples.

Você só precisa escrever um script que seja o arquivo do scp para sua máquina, executar o comando ssh para modificá-lo e, em seguida, puxá-lo de volta. Três linhas, aqui está um modelo muito simples,

scp oldfile [email protected]:/some/directory/file.to.process
ssh [email protected] "/usr/bin/something /some/directory/file.to.process"
scp [email protected]:/some/directory/file.which.is.processed newfile

Adicione parâmetros e coloque uma verificação de erros e você está pronto para usar.

Ou, como a outra resposta mostra, você pode rotear stdin / stdout para a outra máquina, então, para filtros, é ainda mais simples.

    
por 14.07.2011 / 22:58
0

Bem, você pode configurar o encaminhamento do X11 por meio do ssh da máquina em que o arquivo para o processo está localizado. Esta página é um bom tutorial sobre como fazer isso. Basicamente, permite executar o programa a partir do servidor remoto no seu computador (usando os recursos do seu computador).

    
por 14.07.2011 / 23:07
0

Você também pode tentar montar o outro sistema como um diretório. Então você pode acessá-lo normalmente como se estivesse em sua máquina de hortelã. O sshfs é uma maneira de fazer isso.

mac$ ssh user@mint
mint$ mkdir ~/mac
mint$ sshfs user@mac:/path ~/mac
mint$ tool ~/mac/file
    
por 14.07.2011 / 23:08