shell

Dividindo um arquivo em várias partes

Outro dia estava precisando realizar uma trasferência de um backup da nossa base de dados de produção para nosso ambiente de desenvolvimento. Primeiramente, nosso ambiente de produção encontra-se em um data-center fora de nossa empresa, em outro estado. O backup binário da base tem 28Gb, porém compactada com BZip2, reduziu para pouco mais de 4,5Gb. Então a idéia que tive foi fazer o download via http, para acelear o processo.

Só que ai me deparei com uma situação: O Apache de produção, não permitia o upload/download de arquivos maiores que 4Gb. “E agora josé” o que fazer? Trazer via FTP? Trazer via SCP? Não! Pois o download iria demorar cerca de 2 dias e como era num fim de semana não queria ter que estar preocupado monitorando. Então dividi o arquivo em 4 partes iguais com cerca de 1.2Gb cada.

O processo foi simples:

$ split -a bkpdb -n 1200000000 backup-db2.tar.bz2

Protinho, os arquivos foram dividiso em 4 partes iguais. A opção “-a” é do sufixo da nomenclatura dos arquivos, ficou algo como bkpdba, bkpdbb, bkpdbc e bkpdbd.

E ai utilizei o comando wget para baixar os downloads.

Ok Wagner, você trouxe os arquivos, mas e agora para junta-los novamente?!

Isso também foi simples:

$ cat bkpdba bkpdbb bkpdbc bkpdbd > backupdb.tar.bz2

Prontinho! Ai foi só descompactar e restaurar o backup.