[rsync] Sincronizando becapes e outros dados

Publicado por Perfil removido em 31/10/2009

[ Hits: 14.024 ]

 


[rsync] Sincronizando becapes e outros dados



No dia a dia uso muito meu pendrive e o notebook para trabalhar, pois presto serviços em vários estabelecimentos e possuo meu "QG" com desktop, biblioteca etc, onde armazeno meus dados.

Como procedo: tenho meus documentos e arquivos no desktop, que é a máquina principal de uso, pois a utilizo mais para trabalhar, mas preciso de mobilidade, que o pendrive e o notebook dão.

Até aí nada de novo, pois todo mundo faz assim.

A questão que me trouxe até esta dica são as versões de arquivos. Como disse há pouco em outra dica, meus arquivos começaram a ficar bagunçados e precisei fazer uma faxina nos HDs (uso 3x40GB IDE no desktop, por pura sovinice, mas isso não vem ao caso).

E acabei percebendo que iria piorar a bagunça das minhas coisas nessa questão de carregar dados no pendrive, no notebook, trazer para o desktop e vice versa. Na verdade eu já tinha percebido isso há tempos, e criei uma rotina diária para mim, a fim de minimizar o impacto em meus dados.

Vamos lá... Feita a faxina descrita na dica Eliminando arquivos duplicados (quase!) automaticamente, podemos começar com um sistema limpinho, mas não é imprescindível.

Vou descrever aqui minha rotina, você pode adotá-la ou não, fica a seu critério.

Becape semanal

1) Todos os dados das pastas de arquivos e de $HOME são sincronizados com o HD externo.

2) Todos os dados do HD externo são sincronizados com o notebook Amazon (uso mais um Dellzim velho no dia a dia).

3) Guardar o notebook (uso pouco para trabalhar, mais para ler, assistir vídeos, msn e programar um pouco) e o HD externo.

Becape diário

1) Todos os dados da pasta $HOME/Documentos do desktop são sincronizados com a pasta Documentos do pendrive (uso 2 partições para evitar xeretas eventuais no Windows -- os dados ficam em ext2 e ele é bootável com Ubuntu 9.04 via FAT16 -- são 2+2GB -- na partição FAT16 ficam apenas arquivinhos tolos que passo pra um ou outro usuário e ferramentas pra descanalhar Windows dos tais).

2) Todos os dados da pasta Documentos do pendrive são sincronizados com a pasta $HOME/Documentos do notebook Dell.

3) Daqui temos 2 possibilidades:

a) caso tenha trabalhado com o notebook Dell, todos os dados da pasta $HOME/Documentos do notebook são sincronizados com a pasta Documentos do pendrive.

a.1) Todos os dados da pasta Documentos do pendrive são sincronizados com a pasta $HOME/Documentos do desktop. Paramos.

b) caso tenha trabalhado com o desktop, voltamos para os procedimentos "1" e "2" e paramos.

UFA. Falar é mais difícil que fazer. E agora temos todos os documentos e arquivos nas mesmas versões em diferentes máquinas (no meu caso 2, pois o Dell fica só com os Documentos) e mídias (pendrive e HD externo), pois é extremamente desagradável passar algumas horas trabalhando em um documento importante em casa ou no escritório e quando vai abrir a versão que está no pendrive ou notebook perceber que ainda é a versão anterior que nada acrescenta e não resolve o problema (me aconteceu com uma petição de 25 laudas, levei o arquivo inicial com 2... pense numa revolta... daí que bolei esse esquema).

Usamos para isso o rsync e como só estaremos sincronizando os dados, ele não copiará tudo novamente, apenas o que foi modificado.

O rsync é uma ferramenta poderosa e útil, sendo que não é muito utilizada em servidores de dados públicos (como é o caso da maioria dos mirrors de isos Linux, dentre outros), porque, segundo me consta, acaba exigindo muito do servidor em termos de memória e processamento, pois precisa conferir as diferenças entre arquivos e ainda enviá-los comprimidos pela rede. Agora imagine um servidor fazendo isso com uns mil usuários pendurados... Claro que existem vários servidores com rsync mundo afora, mas veja quantas distros e mirrors existem e quantos oferecem a opção de download via rsync daemon. Outra nova e interessante alternativa para servidores é o zsync.

Ops, desculpem a digressão... O rsync é encontrado por padrão na maioria das distros, mas se não o encontrar, num sistema Debian-like, use o conhecido:

# apt-get install rsync

O comando usado para sincronizar as pastas é:

rsync -vaxE --delete /origem/Documentos/ /destino/Documentos/

Note que a barra final faz diferença. Neste caso as pastas são iguais e vamos sincronizar só o que elas contém. Se faltar uma barra, o rsync vai entender que é para copiar uma pasta dentro da outra e não vai funcionar a contento.

As opções "-vaxE" fazem a tarefa de manter permissões etc. Uso o mnemônico "VAX", que era o nome de um antigo sistema da DEC, do tempo do boitatá (http://pt.wikipedia.org/wiki/VAX/VMS) para lembrar dela...

A opção "--delete" diz para apagar arquivos movidos ou deletados (ele não diferencia, ele apaga no destino se não existir na origem, portanto: cuidado com suas coisas), o que por si só ajuda a evitar arquivos duplicados (não faz milagre, mas ajuda).

Depois de um tempo, digitar esses comandos fica tão natural que acabei nem escrevendo script pra isso...

Mais sobre o rsync:

man rsync

Backup com Rsync [Artigo]

Até a próxima.

Outras dicas deste autor

Bashrcgenerator - Site auxilia na personalização prompt do bash

Configurando dispositivo wireless Atheros 5006EG no Ubuntu Gutsy

Gerador de senha 64 bits

Permissão para acesso remoto do MySQL

Debian Squeeze - Scripts na Inicialização

Leitura recomendada

Sistema de arquivos NTFS no Debian

Mudar/alterar nome do computador no GNU/Linux (hostname)

RAID 5 com apenas dois discos, ou menos

Link simbólico e hardlink

ACL - Implementando permissões de arquivos e diretórios personalizados

  

Comentários
[1] Comentário enviado por brunopsystem em 10/12/2009 - 21:07h

Muito bom e muito bem explicativo.
obrigado

[]'s
Bruno

[2] Comentário enviado por nickmarinho em 04/11/2010 - 18:39h

Muito boa essa dica, estou passando por situação semelhante. Tenho um pendrive de 8gb onde levo os arquivos para o trabalho, geralmente são sites que edito em casa no meu desktop e no trabalho em outro desktop.

Para isso criei um shell para fazer essa atualização do pendrive para o desktop de casa e depois do desktop de casa para o pendrive e em seguida para o desktop do trabalho.

#!/bin/bash
if [ $# -lt 2 ]; then
echo "usage: $0 \"folder-from\" \"folder-to\""
elif [ ! -d $1 ]; then
echo "$1 is not a folder"
elif [ ! -d $2 ]; then
echo -e "$2 is not a folder"
echo -e "creating \"$2\" folder"
mkdir $2
sleep 2

rsync -vaxE --delete $1 $2
echo "done !"
else
rsync -vaxE --delete $1 $2
echo "done !"
fi

Abraços

www.lucianomarinho.com.br

www.racaboxer.com.br

;-)

[3] Comentário enviado por wellesfreire em 25/09/2012 - 15:21h

Valeu pela dica resolveu um problema meu antigo.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts