scp arquivo remoto e anexar ao arquivo local

2

Eu tenho vários arquivos para serem extraídos do servidor remoto. Para processamento adicional dos arquivos no servidor local, eu preciso mesclar (concatená-los) em um único arquivo, o que não pode ser feito no arquivo remoto.

Não sei como scp funciona internamente, mas para obter o melhor desempenho, em vez de gravar esses arquivos no diretório local e, em seguida, mesclar, acho que deveria mesclá-los rapidamente e gravar em arquivo único. Você pode por favor me avisar se a fusão (anexação) dos arquivos em tempo real durante scp de arquivos remotos para locais?

Se não é uma ideia melhor?

    
por Betta 15.12.2017 / 12:51

3 respostas

4

Use o SSH diretamente em vez de scp e execute cat . Onde você faria:

scp remote:{file1,file2...} local-dir

Em vez disso:

ssh remote cat file1 file2 ... > locale-file
    
por 15.12.2017 / 13:04
0

Abaixo das etapas para executar apenas no servidor local

Eu testei as duas etapas que funcionaram bem

Primeiro passo

ssh username@remoteserverip "cat file1 file2 file3 >> /remoteserverpath/Mergedfile"

Segundo passo Você está copiando o arquivo mesclado do servidor remoto para o servidor local Você pode fazer isso por rsync ou scp

Eu prefiro o rsync

rsync -avzh username@remoteserverip:/remoteserverpath/Mergedfile localserverpath_where_you_want_to_save
por 15.12.2017 / 14:06
0

Isso é bobagem, mas parece que você pode fazer isso com apenas scp , copiando os arquivos remotos para um fifo local e removendo-os:

$ mkfifo p
$ while :; do cat p >> output ; done  &
$ scp somehost:test/\* p
bar       100%    4    10.9KB/s   00:00    
doo       100%    4     8.6KB/s   00:00    
foo       100%    4    13.6KB/s   00:00  
$ kill %1
# output contains the files concatenated

(testado com o OpenSSH 7.4p1-10 + deb9u2 no Debian)

    
por 15.12.2017 / 14:17