como copiar só o diferencial do arquivo ?

1. como copiar só o diferencial do arquivo ?

Robson
robsoncb

(usa Outra)

Enviado em 03/06/2009 - 17:59h

Pessoal,

Tenho que copiar um arquivo de e-mail em /var/mail/usuario para uma partição.
Só que ao longo dos dias tenho que ir somando na partição de cópia somente as diferenças desse arquivo.

Exemplo:
- Segunda as 15:00 eu copiei o arquivo /var/mail/usuario 1mb
- Terça as 15:00 vou copiar novamente o arquivo /var/mail/usuario 2 mb, mas ele já existe na outra partição, então tenho que adicionar somente a diferença do mesmo.

A intenção é ir juntando na cópia para outra partição as partes que diferem e dessa forma terei o backup dos e-mails do cara em 1 só arquivo. Se o CPU dele Crashar o HD e seu outllok for para o belelel. Eu jogo esse arquivo em /var/mail/usuario para ele de novo no servidor e ele descarrega tudo de novo.

Andei tentando fazer a cópia usando os comandos cat e diff.

Com o cat eu faço a cópia, mas ele soma, então não serve pois ele não copia só a diferença. Repete os e-mails do cara. Comando: cat arq1 >> arq2.

Com o comando diff ainda estou tentando bolar uma forma de usar.

Enfim, alguém já fez isso e pode me dar uma ajuda ?
Pelo o que descrevi, alguém já implementou outra solução em relação a isso esse tipo de idéia de backup de e-mail em linux ?


Sds,
Robson.


  


2. Re: como copiar só o diferencial do arquivo ?

Genesco Sousa
gesousa

(usa Ubuntu)

Enviado em 03/06/2009 - 18:32h

O que vc está querendo fazer é um patch de um arquivo para o outro com a diferença... bom seria o mesmo passo de criar patch para um código fonte...

cria o arquivo somente com a informação que não consta no arquivo antigo.

diff -crB usuario1(antigo) usuario2(Novo)> usuario2.patch


e depois a aplica a mudança com o comando patch

copia o usuario.novo.patch para a partição do arquivo antigo e aplique ele como se fosse um patch

patch -p1 -i usuario2.patch




3. Re: como copiar só o diferencial do arquivo ?

Robson
robsoncb

(usa Outra)

Enviado em 04/06/2009 - 17:30h

Amigo, deixa eu ver se entendi com exemplo prático:
Criei um arquivo aqui e adicionei 1 linha a ele de palavras num diretório /tmp/arquivo (ORIGINAL).
Simulei uma cópia para a um diretório /mnt/particao/arquivo
No local original adicionei mais uma linha, usei o comando diff conforme você recomendou dessa forma:
diff -crB /tmp/arquivo /mnt/particao/arquivo > arquivo.patch

Depois:

patch -p1 -i arquivo.patch /mnt/particao/arquivo

Dessa forma estarei inserindo a diferença no arquivo correto ?

Sds,
Robson.


4. Re: como copiar só o diferencial do arquivo ?

Pedro Pereira
pogo

(usa Fedora)

Enviado em 04/06/2009 - 17:35h

Você poderia tentar utilizar o rsync. Como é um backup, ele tem de ser confiável. O rsync é uma ferramenta bastante confiável e consegue fazer isso que você quer. Aqui mesmo no VOL existem tutoriais sobre como utilizá-lo, dê uma pesquisada :)

[]'s

Pedro
www.pedropereira.net


5. Re: como copiar só o diferencial do arquivo ?

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/06/2009 - 18:14h

Acho que o RSYNC vai te atender bem. O Fábio tem um artigo interessante:

http://www.vivaolinux.com.br/artigo/Transferindo-arquivos-com-o-rsync/?pagina=1






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts