Pular para o conteúdo

Compactando diretórios e transferindo via pipe por SSH

Dica publicada em Shell Script / Miscelânea
Jefferson Diego Diede
Hits: 11.687 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Compactando diretórios e transferindo via pipe por SSH

Essa dica é para quem possui pouco espaço livre e precisa copiar muitos arquivos (backup) por SSH.

O comum é usarmos o scp, porém, se não temos espaço para gerar um tar ou mesmo um tar.bz2 dos arquivos localmente e adicionando-se ao fato do scp não suportar pipe, as coisas ficam complicadas, pois seria necessário copiar um a um os arquivos.

Dentre todas as possibilidades, há dois modos básicos de se fazer isso:

1. Usando processamento da máquina local para gerar o bzip2:

# tar -cf - /home/diretório_de_backup | bzip2 -9vv | ssh root@192.168.0.1 "cat > /backup_diretorio.tar.bz2"

2. Usando processamento da máquina remota para gerar o bzip2:

# tar -cf - /home/diretório_de_backup | ssh root@192.168.0.1 "cat | bzip2 -9vv > /backup_diretorio.tar.bz2"

Baixando jogos do ClickJogos - UOL

Pidgin - Corrigindo erro de certificado omega.contacts.msn.com

Como substituir caracteres acentuados pelos equivalentes não-acentuados

basename - Inserindo ponto separador de milhar em expressão numérica

LibreOffice - Acessando arquivos recentes pelo Unity Launcher

Sistema de backup em shell script

sed formatando CPF, CNPJ e datas

#1 Comentário enviado por heiligerstein em 18/05/2012 - 12:27h
Muito boa a dica, mas eu não usaria com SSH, visto que vc cria mais uma camada de criptografia desnecessária. Fiz com o canivete suíço, o *netcat*. Assim elimina também o *cat*.

Máquina que recebe (abre a conexão na porta 1234):
nc -l 1234 | bzip2 -9vv > /backup_diretorio.tar.bz2

Máquina que envia:
tar -cf - "./Minhas músicas"/ | nc 192.168.0.1 1234





Contribuir com comentário

Entre na sua conta para comentar.