Arquivamento para máquina remota com tar / cpio e ssh?

3

Estou alugando um par de VPS com o Ubuntu e consegui encher um deles. Aqui eu tenho vários diretórios com muitos arquivos que gostaria de colocar em um arquivo. Infelizmente, não tenho espaço suficiente para criar esse arquivo (nem mesmo como root).

Eu estava lá para saber se é possível usar tar (preferencial) ou cpio para criar o arquivo no outro VPS? Eu quero compactar o arquivo, então chamando tar com a opção-j (bzip2) ou canalizando o arquivo para bzip2 em algum momento (de preferência antes de enviá-lo pela rede) - alguma sugestão de como eu melhor pode comprimir o arquivo?

Finalmente, tanto o VPS tem o ssh e o sshd instalados, então eu estava pensando em usá-lo para a transmissão do arquivo.

+++

Infelizmente eu não sou um especialista em usar tar / cpio ou ssh dessa maneira, então estou um pouco fora de minha profundidade para que algo como isto possa (melhor) ser realizado. Como devo usar ssh ? Como túnel ou tubo, como ftp, como scp? Como devo usar tar ? Tem tar rodando em ambos os VPS, com um túnel ssh entre eles? Executar tar no VPS de origem, encapsular o resultado e redirecionar o resultado para um arquivo no VPS de destino?

Então, como posso fazer isso?

Existe outra maneira melhor de fazer algo assim? Algum pacote de propósito especial? Usando soquetes de rede? Algo mais?

    
por Baard Kopperud 26.08.2015 / 12:31

3 respostas

4

a tubulação deve ser suficiente. Fazendo apenas:

tar -cvj /path/to/your/files | ssh remote "cat > file.tar.bz2"

(se você configurou o login sem senha usando as teclas)

Mais tarde, na outra máquina, você pode descompactar o arquivo recebido usando tar -xvf path.tar.bz2 -C ./

    
por 26.08.2015 / 12:53
2

Você pode usar algo assim para arquivar e copiar por meio do ssh:

tar zcvf - stuff/ | ssh alex@localhost 'cat - > /tmp/stuff.tar.gz'

Aqui você está criando um arquivo tar.gz, mas em vez de salvá-lo em algum arquivo, está usando - , que é a saída padrão. A saída padrão - é então canalizada para ssh e a partir daí você gata da saída padrão cat - > e redireciona para o seu arquivo na segunda máquina.

O usuário do formulário de sugestões Arkadiusz Drabczyk nos comentários também é bom, porque uma vez configurado você poderia usar mv para mover de uma máquina para outra. Se você quiser usar o sshfs você tem que instalá-lo primeiro e depois disso:

sudo sshfs [email protected]:/ /mnt/droplet
    
por 26.08.2015 / 12:54
0

Eu sempre usaria rsync para casos como esse. Isso torna todo o processo mais flexível e confiável. Por exemplo, todo o processo será reiniciável e pode continuar onde parou / falhou / foi interrompido.

    
por 16.01.2018 / 11:07

Tags