Você pode scp, sftp ou rsync, um pipe?

6

Eu quero tar e enviar um diretório ~ 700GiB para um drive remoto que eu não controle. Eu não tenho o espaço em disco rígido localmente para criar o tarball e depois copiá-lo. O controle remoto também é protegido pelo rssh - você não pode ssh no servidor e executar comandos arbitrários.

No entanto, posso usar scp, rsync ou sftp. Então, minha pergunta é específica para um desses 3 comandos. Existe uma maneira de o scp, rsync ou sftp copiar um canal, sem poder executar comandos arbitrários do outro lado?

Atualização: As soluções abaixo não teriam funcionado para nós em nosso armazenamento secundário. Estamos restritos a executar certos comandos. Nós não podemos usar ssh - comandos que usam ssh são filtrados / controlados com rssh.

No final, cancelamos todas as nossas contas secundárias e pagamos muito para duplicar nosso tamanho de armazenamento primário (nosso host primário poderia fazer isso sem a migração, o que era legal). Em seguida, criamos um arquivo temporário e o enviamos de acordo com o normal. (O que não conseguimos fazer com nossa quantidade inicial de armazenamento.)

No futuro, estaremos usando um VPS secundário com seu próprio armazenamento maior dedicado, para que isso não ocorra novamente. É claro que o que eu estava pedindo não é possível.

    
por SaburoutaMishima 08.06.2016 / 06:05

2 respostas

1

Não é exatamente "pipe", mas você pode basicamente dizer a scp para copiar um FD específico (que pode ser pipe) do seu host para o outro. Comando bash simples como este:

( scp não funciona porque precisa de um tamanho antecipadamente):

scp <(tar cz files to compress) host:/path/to/new.file

mas pode funcionar com ssh :

tar cz files to compress | ssh host "cat > /path/to/new.file"
    
por 08.06.2016 / 09:47
0

Comportamento do RSYNC sobre o SFTP

Sem compactar nada, é possível replicar a estrutura de diretórios para o outro lado usando o LFTP (o nome é enganoso) e o subsistema mirror do LFTP. O LFTP suporta SFTP e o subsistema de espelhamento suporta quase todos os recursos do rsync. Ele também pode dividir a transferência em quantas conexões desejar, para torná-la mais rápida. Eu faço isso o tempo todo.

Exemplo

Veja também este post: link

    
por 15.06.2016 / 20:02