One-liner Linux para scp'ing milhares de arquivos como um tar

2

Eu tenho uma pasta com dezenas de milhares de arquivos que eu preciso para scp para outra caixa. Como fazer um arquivo de cada vez é muito demorado, e como eu não tenho espaço no disco rígido para fazer um arquivo tar compactado de todos os blocos - eu gostaria de fazer o seguinte:

Alcance todo o arquivo em tempo real e passe-o diretamente sobre o scp para a outra caixa e descompacte-o imediatamente. Dessa forma, posso obter largura de banda total (não é necessário iniciar cada arquivo) e não ficarei sem espaço duplicando todo o arquivo.

Minha caixa A é OSX, B é Ubuntu.

Existe uma frase única para isso?

    
por knutole 16.07.2013 / 22:19

2 respostas

3

scp funciona apenas em arquivos que já estão na unidade. Como você não quer criar o arquivo (tar) antes de enviá-lo, você precisa usar o ssh e o tar diretamente:

tar -c -f - ./path/to/compress | ssh eee.lan tar -C /where/to/extract -x -f-
    
por 16.07.2013 / 23:47
5

Eu recomendaria usar rsync ; no caso de sua conexão ser interrompida, o rsync pode pegar onde ele foi deixado (com um pouco de sobrecarga). O rsync pode trabalhar sobre o ssh diretamente, então ainda será seguro.

rsync -av -e ssh /path/to/send rsync://[email protected]/path/to/receive

    
por 17.07.2013 / 00:16

Tags