Fazendo backup do diretório rsnapshot com cópias rsync, entra no diretório de backup

1

Eu tenho um servidor de backup principal executando o rsnapshot, com ~ 2TB de backups armazenados nele. Após os backups noturnos, copio o conteúdo do diretório rsnapshot para um servidor off-site, usando rsync -aH --delete /source /dest . No entanto, isso parece copiar todo o conteúdo do diretório de backup toda noite, já que a cópia fora do site leva aproximadamente 9 horas para ser concluída.

Eu assumo que o meu comando rsync não tem os interruptores certos, mas pode estar faltando alguma coisa. Alguma idéia?

    
por zymhan 24.03.2014 / 14:53

3 respostas

2

O problema aqui é que, se você quiser manter uma cópia do backup versionado inteiro em um local remoto, você terá que lidar com o fato de que o rsnapshot rotaciona os nomes dos diretórios sempre que ele é executado, então você terminará com uma nova cópia do backup mais recente sendo copiado ao longo do tempo.

Você pode alterar a maneira como o rsnapshot é executado em termos de quando executa as cópias e quando gira (renomeia) os diretórios e também pode executar scripts em vários pontos no ciclo de execução do rsnapshots, como antes ou depois de um ponto de backup específico executar.

Há um post útil aqui:

link

Outra abordagem é obter uma cópia do rsnapshot em sua segunda máquina e fazer com que ele faça backup do conteúdo de /snapshot_root/daily.0 DEPOIS de sua parte principal ter sido concluída. Isso, juntamente com os sinalizadores de rsync corretos, fornecerá uma cópia incremental dos seus backups mais recentes.

    
por 08.04.2014 / 10:14
4

Acredito que você acabou de copiar os mesmos arquivos várias vezes. Espero que esses detalhes sobre como o trabalho do rsnapshot ajudará a resolver o problema.

Este é o ponto mais importante:

When rsnapshot daily is run, it will rotate all the daily.X directories, then copy the contents of hourly.5 into daily.0.

hourly.0 will always contain the most recent snapshot, and daily.6 will always contain a snapshot from a week ago. Unless the files change between snapshots, the full backups are really just multiple hard links to the same files. Thus, if your /etc/passwd file doesn't change in a week, hourly.0/localhost/etc/passwd and daily.6/localhost/etc/passwd will literally be the same exact file.

This is how rsnapshot can be so efficient on space. If the file changes at any point, the next backup will unlink the hard link in hourly.0, and replace it with a brand new file.

por 26.03.2014 / 16:08
1

Existe uma opção chamada --link-dest , que faz o que você precisa. Quando este parâmetro aponta para o seu último backup, ele só copiará os arquivos do src para o destino se o src for diferente dos dados que já estão no último backup (referenciado por --link-dest ); se os dados forem os mesmos, criará um symlink, dando a você um backup completo com versão.

Eu uso essa opção para criar instantâneos diários localmente em um disco separado; para backup remoto, você precisará modificá-lo para garantir que os links simbólicos serão criados corretamente no sistema remoto. Eu recomendaria adicionar alguma rotação de backups antigos e um backup padrão inicial deve ser criado para comparar.

today=$(date "+%Y-%m-%d-%H-%M-%S")
rsync -a --link-dest=/localbackups/latest/ /data/ /localbackups/${today}
cd /localbackups/
rm -rf /localbackups/latest
ln -s $today latest
    
por 27.06.2014 / 11:30