Ordem de transferência de arquivos recursiva SCP

10

Perguntando se é possível especificar uma ordem de classificação ao transferir arquivos com scp .

Por exemplo: $ scp -r "user@host:/path/to/download/" .

[... files download in a seemingly random order ...]

Como talvez isso possa estar relacionado a como scp funciona, existe alguma maneira de configurar o ssh no lado de origem (servidor) para que os arquivos sejam transferidos, por exemplo, na ordem ascendente de nome de arquivo?

    
por Dmitry Minkovsky 12.10.2011 / 20:57

3 respostas

3

Eu resolvo o problema com tar e a transparência do pipe de ssh . Um exemplo pode ser visto abaixo, o PC remoto é denominado bar . Antes do teste, criei três arquivos vazios em /tmp/foo executando ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}' .

$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 c

O sinal -T de tar faz com que ele leia os nomes dos arquivos para compactar a partir do próximo parâmetro e - significa a entrada padrão. Agora você só precisa canalizar o nome dos arquivos para ele, que pode vir de ls (como no exemplo) ou find para tarefas mais complicadas. Com essa configuração, você pode usar sort para indicar a ordem exata em que os arquivos serão transmitidos por SSH (nesse caso, -r arquivos classificados em ordem alfabética reversa). O -v é adicionado somente ao final, descompactando tar , para que a ordem fique visível.

    
por 29.11.2012 / 17:15
1

Pode-se conseguir a transferência de arquivos com ordem alfabética usando rsync :

rsync -P -e ssh -r user@remote_host:/some_path local_path

P permite o download parcial, e define o protocolo SSH e r downloads recursivamente.

    
por 11.06.2017 / 01:43
0

Caso isso ajude alguém, forneci uma solução simples aqui:

link

Ainda esperando por uma maneira mais inteligente de fazer isso!

    
por 20.04.2014 / 16:18

Tags