Publicado em GNU/LInux, Tecnologia, Terminal

Backups na linha de comandos do Linux I

File Not Found

Cópias de segurança precisam ser feitas. Todo mundo sabe por que. Quem já não deletou o arquivo ou a pasta errada e esvaziou a lixeira antes de perceber o erro? Quem não viu seu HD parar de funcionar de um instante pro outro? Quem simplesmente não sabe o que aconteceu com aquele documento que estava ai, e agora não está mais? Embora existam as ferramentas de recuperação, elas não são 100% garantidas nem tão fáceis de usar. “The desperate man” de Gustave-Courbet (o carinha puxando os cabelos na imagem) sabia. Que outra coisa poderia ter deixado ele nessa condição? Então, todo mundo sabe, mas poucos são os que fazem. E assim que vai o mundo…

No universo Linux, várias ferramentas auxiliam nessa tarefa. Algumas bastante conhecidas e simples de se usarem são: Déjà Dup e Back In Time. São aplicativos com interface gráfica e não precisam de maiores explicações, eles se explicam sozinhos.

Mas, o que nos interessa aqui é pegar as manhas do terminal, então vamos explorar os caminhos infinitos da linha de comandos.

tar & gzip

Esses dois comandos juntos oferecem uma solução básica, porem efetiva segundo a situação. O primeiro empacota um conjunto de arquivos, enquanto o segundo comprime o pacote.

Empacotando com tar

$ cd ~/Musicas
$ ls
sound1.mp3 
sound2.mp3 
sound3.mp3 
sound4.mp3 
...
$ tar -cvf ~/Dropbox/backups/minha_musica.tar *.mp3
$ ls ~/Dropbox/backups
minha_musica.tar

No exemplo, temos vários arquivos de áudio formato mp3 na pasta Musicas. Queremos empacotar todos eles criando o pacote (ou tarball) numa pasta específica do Dropbox. Usamos o comando tar com as opções -cvf:

  • -c (create) para criar um novo tarball,
  • -v (verbose) para obter uma lista dos arquivos que efetivamente foram empacotados,
  • -f (file) para nomear o tarball a ser criado. Ela precisa ser a última, já que o nome (ou o path) vem logo após dela.

Como explicado previamente, logo após a opção -f introduzimos o nome do tarball -se o mesmo vai ficar no diretório atual- ou o path (a rota) se o backup vai ser armazenado em um outro diretório, partição ou HD.

No exemplo, então, nós temos criado um tarball minha_musica.tar no diretório /home/alejandro/Dropbox/backups. Ele contem todos os arquivos mp3 do diretório Músicas. Mas eles não foram comprimidos, ele foram apenas, empacotados.

Comprimindo com gzip

A menos que o tempo adicional empregado para comprimir e descomprimir arquivos seja uma problema crítico, geralmente, é uma boa ideia comprimir os tarball que temos criado:

$ cd ~/Dropbox/backups
$ gzip minha_musica.tar
$ ls
minha_musica.tar.gz

Agora, a extensão .tar mudou para .tar.gz. Os nosso arquivos de música foram empacotados e comprimidos no diretório escolhido para fazer a nossa cópia de segurança.

Descomprimindo e desempacotando

Agora vamos desfazer o feito. Chegou o momento temido, alguma coisa sumiu misteriosamente no nevoeiro e, felizmente, tínhamos feito nosso backup. Temos que restaurar:

$ cd ~/Dropbox/backups
$ ls
minha_musica.tar.gz
$ gzip -d minha_musica.tar.gz
$ ls
minha_musica.tar
$ tar -xvf minha_musica.tar -C ~/Musicas

Aqui, gzip vai acompanhado da opção -d (decompress) e o tar substitui a opção -c por -x (extract). Os arquivos estão de novo no seu lugar. Para indicar que o tarball será desempacotado em um diretório diferente do atual usa-se a opção -C (maiúscula) antes do path onde será desempacotado.

Tudo de vez numa linha só

Existe uma forma mais simples ainda, mas acho legal conhecer o processo em suas partes antes de juntá-las. O comando tar pode gestionar a compressão dos tarballs chamando o gzip com a opção -z:

$ tar -czvf ~/Dropbox/backups/minha_musica.tar.gz *.mp3

tar criou o tarball e chamou o gzip para comprimi-lo.

$ tar -xzvf minha_musica.tar.gz -C ~/Musicas

Pelo contrário, descomprimiu e desempacotou os arquivos na pasta original.

Tudo numa linha só!

Só o começo

Mas esses comandos são muito mais potentes do que eles parecem. Digita no seu terminal:

$ man tar

Ou acessa esse link:

http://linux.die.net/man/1/tar

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s