On 11/12/2007, William David FUG-BR <[EMAIL PROTECTED]> wrote: > 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 excluídos 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, eu fiz um script em sh para pegar a > data atual dai você > agenda no cron e corre pra cama dormir sossegado. > > configuração: > srv 1 > > * 1 hd pro OS > * 1 hd 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 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 só que em outro micro > 2) pois a velocidade é bem superior ao ATA IDE, de preferencial a hd´s > de 10.000 rpm pois estes são os verdadeiros SATA. > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >
Muito obrigado pela dica, mas estou com o mesmo problema, permissão. -bash-2.05b# rsync -avhrp --stats /mnt/home/ /usr/home rsync: send_files failed to open "/mnt/home/...../data/tlEKxNMBQwgPnKI2IsqHYCqUcsynLFWP": Permission denied (13) rsync: send_files failed to open "/mnt/home/..../data/[EMAIL PROTECTED]": Permission denied (13) rsync: send_files failed to open "/mnt/home/...../data/vfc.pref": Permission denied (13) rsync: send_files failed to open "/mnt/home/..../data/[EMAIL PROTECTED]": Permission denied (13) rsync: send_files failed to open "/mnt/home/..../scripts/megaupload-1.45/.Changes.swp": Permission denied (13) Algo novo para me indicar??? Abraços -- Gilberto Villani Brito System Administrator Londrina - PR Brazil gilbertovb(a)gmail.com ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd