shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] backup remoto - reenviar em caso de erro


From: Robson Américo
Subject: Re: [shell-script] backup remoto - reenviar em caso de erro
Date: Fri, 17 May 2013 12:11:08 -0300

Eu gosto de fazer um esquema que, no meu caso, serve para resolver o
problema que você apresentou:


   - No servidor que hospeda os dados, há um script responsável por gerar
   cada arquivo de backup (imagine vários diretórios e/ou bancos de dados,
   cada um sendo backupeado em um arquivo diferente). Este script, quando
   termina cada backup, gera um hash md5 e armazena em um novo arquivo;
   - No servidor de backup, há um segundo script que a partir de
   determinado horário, conecta-se no primeiro servidor e lista quais arquivos
   .md5 já foram gerados (pode acontecer de o primeiro script ainda não ter
   concluído todos os backups, então o .md5 serve para indicar o que já está
   pronto). Então este script baixa os arquivos .md5 e os respectivos arquivos
   de backup. Depois de baixado, gera novamente um hash de cada arquivo de
   backup e compara com o md5 baixado, para checar a integridade
   da transferência;


Toda esta sequencia de conectar, listar o que ja está pronto, baixar e
checar a integridade que o segundo script faz fica dentro de um laço *while*,
e caso ocorra algum problema (de indisponibilidade de link ou de
integridade dos backups), o script apaga o que já baixou, aguarda alguns
minutos e repete o processo até a checagem do hash dar certo. Finalmente, o
while só termina quando todos os arquivos são baixados e checados. Para a
cópia em si, eu uso:


 *rsync -avc --stats --progress  --bwlimit=250
servidor:/caminho/arquivos/backup/ caminho/local/armazenar/*
*
*

onde *250 *é a taxa em kbps máxima que o rsync poderá utilizar

*servidor* é o hostname do servidor backupeado, seguido do path dos arquivos

*caminho *é o diretório local onde os backups serão recebidos

Funciona que é uma beleza!

Abraço


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]