[FUG-BR] Backup com rSync sem ser incremental

William David FUG-BR fugbr em biosystems.ath.cx
Sábado Agosto 19 01:30:15 BRT 2006


huahuahuahu mat0 essa pra  vc  em  2 toques

Espelho e Backup automático com RSync e NFS

Desenvolvi uma rotina de backup com rsync pra você fazer um espelho do
servidor e manter os arquivos excluidos em um diretório ou partição
separada é realmente muito simples.

Você pode por o servidor de backup em produção mantendo 1 dia de
atrazo ou menos e ainda ter um bkp diário do que foi excluido o
comando é esse :

/usr/local/bin/rsync -a --delete-during --backup
--backup-dir=/backup/2006-08-15/user/ --compress --verbose
--human-readable --stats /srv1/user/ /srv2/user

Explicando:

   *   o –delete-during ele apaga no destino o que já foi excluido na
origem durante a sincronização.
   *   o –backup –backup-dir=/backup/2006-08-15/user/ irá efetuar o
backup e definirá onde ele deve guardar os arquivos excluidos antes
dele serem apagados no destino ( ou atualizados, nao veirifiquei isso
ainda ), eu fiz um script em sh para pegar a data atual dai você
agenda no cron e corre pra cama dormir sussegado.

configuração:
srv 1

   *      1 hd pro OS
   *      1 hd scsi para os dados correto ?

Instala o rsync cria um compartilhamento NFS na partição de dados no
serv 1 que só pode ser montado pelo serv 2
srv 2

   *      1 hd pro OS
   *      1 hd pros dados como espelho1) mas em stand by para algum
pau. você só precisa mudar o ip e subir o samba que deve ser
configurado também como um espelho do teu srv 1 de produção e ai você
desliga o srv 1 para reparo . =o)
   *      4 hd´s SATA2) para ser os BKP sem graid3 ( que é a versão
GEOM do RAID3 por software ). pra podermos utilizar melhor todo espaço
e fazer uma rotação simples nos hd´s para mais segurança contra falhas
do próprio hd.

Usando o cron você monta esse compartilhamento e executa o rsync
normalmente puxando do srv 1 os arquivos para o srv 2 atualizando o HD
de mirror e já fazendo backup para os hd´s SATA, dai vem de você
rotacionar os discos conforme você achar melhor

/backup/
/backup/semana 1 ( hd 1 )
/backup/semana 2 ( hd 2 )
/backup/semana 3 ( hd 3 )
/backup/semana 4 ( hd 4 )

O sh irá verificar se existe 1 arquivo ( IF { exist } ) de TAG para
fazer rotação entre os hd´s esse arquivo é apagado e gerado no final
de cada execução do backup com o touch /backup/TAG1 - TAG2 - TAG3 -
TAG4 .

#!/bin/sh

###
# BSSN
# Script de espelhamento em 1 hd para fail over e backup diferencial
por data em 4 hd´s para bkp alternado.
# v2.000  bio060815
###


DATA1=`/bin/date +%Y-%m-%d`
DIRETORIO1=/backup/semana1/$DATA1
DIRETORIO2=/backup/semana2/$DATA1
DIRETORIO3=/backup/semana3/$DATA1
DIRETORIO4=/backup/semana4/$DATA1

# ARQUIVO=/squid/logbkp/squid.logs.$DATA1.tgz



echo "Checando TAG..."

if [  -f /backup/TAG1 ]
 then
       echo "Montando particao remota no servidor de backup"
       /sbin/mount -t nfs 192.168.1.247:/SCSI /mnt
       # mnt é o hd scsi do serv1 montado via nfs

       mkdir $DIRETORIO1
       cd /mirror

       echo " efetuando backup em" + $DIRETORIO1
       /usr/local/bin/rsync -a --delete-during --backup
--backup-dir=$DIRETORIO1/user --compress --verbose --human-readable
--stats /mnt/ /mirror
       # mirror é o hd de espelho do SCSI que ficará em stand by

       /bin/rm /backup/TAG1
       /usr/bin/touch  /backup/TAG2
       echo
       echo "...done."

elif [  -f /backup/TAG2 ]
 then
       echo "Montando particao remota no servidor de backup"
       /sbin/mount -t nfs 192.168.1.247:/SCSI /mnt
       # mnt é o hd scsi do serv1 montado via nfs

       mkdir $DIRETORIO2
       cd /mirror

       echo " efetuando backup em" + $DIRETORIO2
       /usr/local/bin/rsync -a --delete-during --backup
--backup-dir=$DIRETORIO2/user --compress --verbose --human-readable
--stats /mnt/ /mirror
       # mirror é o hd de espelho do  SCSI que ficará em stand by

       /bin/rm /backup/TAG2
       /usr/bin/touch  /backup/TAG3
       echo
       echo "...done."

elif [  -f /backup/TAG3 ]
 then
       echo "Montando particao remota no servidor de backup"
       /sbin/mount -t nfs 192.168.1.247:/SCSI /mnt
       # mnt é o hd scsi do serv1 montado via nfs

       mkdir $DIRETORIO3
       cd /mirror

       echo " efetuando backup em" + $DIRETORIO3
       /usr/local/bin/rsync -a --delete-during --backup
--backup-dir=$DIRETORIO3/user --compress --verbose --human-readable
--stats /mnt/ /mirror
       # mirror é o hd de espelho do  SCSI que ficará em stand by

       /bin/rm /backup/TAG3
       /usr/bin/touch  /backup/TAG4
       echo
       echo "...done."

elif [  -f /backup/TAG4 ]
 then
       echo "Montando particao remota no servidor de backup"
       /sbin/mount -t nfs 192.168.1.247:/SCSI /mnt
       # mnt é o hd scsi do serv1 montado via nfs

       mkdir $DIRETORIO4
       cd /mirror

       echo " efetuando backup em" + $DIRETORIO4
       /usr/local/bin/rsync -a --delete-during --backup
--backup-dir=$DIRETORIO4/user --compress --verbose --human-readable
--stats /mnt/ /mirror
       # mirror é o hd de espelho do  SCSI que ficará em stand by

       /bin/rm /backup/TAG4
       /usr/bin/touch  /backup/TAG1
       echo
       echo "...done."


fi

1) seria um espelho do teu hd SCSI só que em outro micro
2) pois a velocidade é bem superior ao ATA IDE, de preferencia a hd´s
de 10.000 rpm pois estes são os verdadeiros SATA.

http://biosystems.ath.cx:8080/wiki/doku.php?id=rsync



2006/8/18, Thiago J. Ruiz <thiagojruiz em gmail.com>:
> Hi All,
>
> estava googleando por uma solução de backup com rsync, achei algumas
> coisas, testei e funciona, consigo salvar apenas o que mudou deletar o
> que não existe no source e tudo mais, porém eu gostaria que os
> arquivos que foram alterados fossem gravados ainda por um tempo em uma
> outra pasta com uma mesma arquitetura de pastas (pra diferenciar de
> onde veio o arquivo e talz), e quanto a isso eu não encontrei nada,
> alguém de vcs ilustres amigos =D já conseguiu isso?
>
> abraços
>
> --
> Thiago J. Ruiz
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


-- 
-=-=-=-=-=-=-=-=-=-
William David Armstrong          <----.    Of course it runs
Bio Systems Security Networking <----|==========================
MSN / GT  biosystems em gmail.com  <----'   OpenBSD or FreeBSD
--------------------------------------


Mais detalhes sobre a lista de discussão freebsd