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.684 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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"

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

Baixando jogos do ClickJogos - UOL

Renomeando extensões de centenas de arquivos de uma só vez

IP em modo texto (modem router)

Comandos mkdir e cd simultaneamente

Shell Script - Usando vários scripts em um só

Rotacionando vídeos com o Mencoder

#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.