Você está na página 1de 3

Como Copiar Arquivos Grandes no Linux?

Imagine que voc precisa copiar um arquivo bem grande (ou de tamanho que consideramos bem grande para os dias de hoje, quando escrevo), algo em torno de vrios gigas. Pode ser um dump geral de seu banco de dados, um arquivo de log gigantesco, um arquivo temporrio ou um filme em Blue Ray. Pode ser que a cpia de backup deste arquivo falhe ou a escrita para ele comece a falhar a partir de certo ponto... o que fazer?? Calma, o Paj tem a soluo!!

Cpia em Ambiente Linux

Se voc usa um sistema de arquivos moderno, como o ext4, ento voc poder escrever vrios gigas num mesmo arquivo. Se sua cpia ou escrita falhar, tente verificar se existe algum limite pr-definido de escrita, usando o comando: $ unlimited ulimit

Se a resposta for a que mostro a em cima (unlimited), ento no h limite para a sua cpia. De outra forma, pode haver limite. Da, para redefinir o limite, basta usar este mesmo comando, passando o novo valor aps o argumento -f: $ ulimit -f [valor] Para um tutorial completo sobre limites de escrita, uso e cotas de usurios, visite este endereo.

Cpia pela Rede, para Pen-Drives, HDs Externos ou Outros Dispositivos

Agora realmente a coisa muda de figura!! Voc est tentando copiar um arquivo que est em um sistema de arquivos Linux para um dispositivo que provavelmente tem seu prprio sistema de arquivos, no necessariamente aquele que voc usa na mquina de origem do arquivo. Lembre-se de que um sistema de arquivos um banco de dados, e que cada tipo tem seus prprios limites. Se voc est copiando para outro dispositivo, verifique qual o sistema de arquivos que ele usa com este comando (claro, presumindo que o dispositivo esteja montado e acessvel!!): $ mount (....) /dev/sdb1 on /media/HDExterno type vfat

O comando acima vai mostrar tudo que est montado em seu sistema (a maioria no interessa neste momento, ento coloquei estas sadas no formato de "(...)", para ficar mais fcil de entender). Porm, uma das linhas da sada vai se reportar ao dispositivo externo. No caso acima, um HD Externo, que acessvel em /dev/sdb1 e est montado em /media/HDExterno. Observe que o tipo de sistemas de arquivos vfat, ou seja, possivelmente um FAT32. O sistema de arquivos FAT32 (vfat) o pior que tem: um sistema antigo, limitado e muito simples. Porm, exatamente dada a sua simplicidade, ele facilmente acessvel e montvel em ambientes os mais diferentes, desde Linux e MAC at Rdios (CD Players), TVs, DVD Players, CD Players de carros e aparelhos de som. Notem que o HD Externo acima est formatado em FAT32. Pelas caractersticas deste sistema de arquivos, no possvel gravar nenhum arquivo maior que 4GB (na verdade, um byte antes de 4GB de tamanho). No adianta, quantas vezes voc tentar, vai falhar...

Achando a Soluo para o Caso Acima

Se o seu caso este acima, ento tente fazer uma destas solues: 1- Reformatar o HD com outro sistema de arquivos, como o NTFS (para ter compatibilidade com Windows) ou mesmo os sistemas do Linux, como ext4, ReiserFS, etc. Claro, isto implica em fazer backup de tudo que tem nele, apagar o HD Externo totalmente e reformatar. Porm, se voc precisa muito gravar um arquivo de mais de 4GB, que pode ser seu precioso banco de dados ou o Log de seu sistema, ento vale a pena o esforo!! 2- Uma alternativa, usar o comando split, que quebra o arquivo em vrios pedaos definidos por voc. Depois desta quebra, o original pode ser apagado e os pedaos, em menor tamanho, podem ser gravados sem problemas. Fique tranqilo, pois eles podem ser remontados sempre que necessrio, usando o comando cat. Excede o escopo deste tutorial explicar detalhadamente como eles funcionam, mas a documentao dos mesmos bem clara e certamente voc conseguir us-los bem (digite "man split" e "man cat" para ver a pgina do manual de cada um)!! 3- Existem compactadores muito bons que conseguem reduzir em grande parte o tamanho dos arquivos. Muitos deles, como o rar, suportam no s a compactao como tambm a quebra do arquivo compactado em arquivos menores e de mesmo tamanho. Muitas vezes, voc pode usar mais de um compactador, como a combinao do tar com o gzip ou bzip2. Se voc pretende fazer backup, recomendo sempre compactar os dados e, claro, voc pode fazer um script para te ajudar nesta tarefa um tanto quanto enfadonha. Bom, pessoal, por hoje isso... espero ter ajudado!!

Como quebra um arquivo compactado em vrios tamanhos menores!

Hoje temos uma grande dificuldade com relao a compactar um arquivo grande e enviar por e-mail. Vou demonstrar aqui como quebra esse grandioso arquivo em vrios outros pequenos. Irei d o exemplo de um arquivo de 1.5GB (home de um usurio), mas podemos fazer da mesma forma com arquivos maiores. 1: Compactar o arquivo chamado bsoares ( home do usurio bsoares) tar -zcf bsoares.tar.gz bsoares 2: Como j verifiquei que o arquivo tem o tamanho de 1.5GB, usei o parmetro 1024m ( o arquivo ir ser quebrado em dois arquivos ( um de 1GB e outro de 500MB )), veja abaixo:

split -b 1024m bsoares.tar.gz bsoares_quebrado

Segue abaixo como fica o arquivo quebrado:

-rw-r--r-- 1 root staff 1073741824 2009-02-03 16:57 bsoares_quebradoaa -rw-r--r-- 1 root staff 499887191 2009-02-03 16:58 bsoares_quebradoab

3: Para retornar o arquivo ao seu tamanho normal compactado (tar.gz), basta executar:

cat bsoares_quebrado* > bsoares.tar.gz

Veja abaixo:

-rw-r--r-- 1 root staff 1573629015 2009-02-03 17:04 bsoares.tar.gz