[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]