conecta-se ao servidor com o netcat e recebe * múltiplos * arquivos com uma solicitação / conexão

1

Digamos que eu tenha um servidor http ou tcp em execução, que serve tarballs (arquivos .tgz).

Existe alguma maneira de receber arquivos individualmente para que eu possa fazer algo assim:

nc localhost 5000 | how can I read multiple files here and save each to disk?

para explicar melhor, quando me conecto ao servidor, gostaria de responder com uma série de arquivos .tgz. A minha pergunta é, se é um servidor tcp, como posso escrever cada arquivo para que ele apareça separadamente.

A única coisa que eu sei fazer é enviar os dados para um único arquivo, mas não sei escrever vários arquivos.

Esta é potencialmente uma resposta: link

Mas não entendo como gravar cada arquivo individualmente.

    
por Alexander Mills 14.05.2018 / 08:15

1 resposta

3

No servidor, faça:

tar c file1 file2 dir1 file3 ... | nc -l 5000

Em seguida, no cliente, faça:

nc server 5000 | tar x

Ou mais lento, mas mais seguro:

ssh server tar c file1 file2 dir1 file3 ... | tar x

Por exemplo:

$ ssh localhost 'cd /etc; tar c passwd nsswitch.conf' | (d=$(mktemp -d); tar xv -C "$d"; ls -l "$d"; rm -r "$d")
passwd
nsswitch.conf
total 8
-rw-r--r-- 1 muru muru  529 Feb 16  2017 nsswitch.conf
-rw-r--r-- 1 muru muru 2631 Apr 24 18:18 passwd
    
por 14.05.2018 / 09:27