Piping com SSH e dividir o arquivo

3

Estou usando

tar zcf - stuff | ssh user@server 'cat > data.tar.gz'

Existe uma maneira de dividir o arquivo na transferência?

Algo parecido com isto:

tar zcf - stuff | split -b 5G | ssh user@server 'cat > data-${part}.tar.gz'
    
por Andreas 13.10.2012 / 11:03

1 resposta

2

Sim, o comando é chamado de split .

tar czf - stuff | split -b 5G -d -f 'ssh server "cat >$FILE"'

Esta opção é nova no Ubuntu 12.04. Com versões anteriores, split só pode ser dividido em arquivos, não em comandos. Os arquivos podem ser pipes nomeados, mas organizar os comandos para ler os canais é complicado.

Sem split -f , uma abordagem mais fácil é esquecer o uso de um comando. Monte o sistema de arquivos remoto com sshfs , para que você possa escrever para ele como se fosse um arquivo local.

mkdir ~/net/server
sshfs user@server ~/net/server
tar czf - stuff | (cd ~/net/server && split -b 5G -d)
fusermount -u ~/net/server

Você pode estar interessado em um software de backup adequado, como duplicidade .

    
por Gilles 13.10.2012 / 14:13