rsync para backups: sem a opção --remove e rotações…?

3

É razoavelmente seguro usar o rsync (sem a opção --delete) para fazer meus backups diários e manter apenas 1 cópia no servidor de backup (em vez de ter várias cópias com rotações)?

Se eu não ativar a opção --delete, nenhum arquivo de backup será excluído, correto?

obrigado

    
por aneuryzm 09.01.2011 / 13:02

4 respostas

1

(isso começou como um comentário na resposta do OnoeOfOne , mas cresceu muito para isso ...)

Eu uso um método rsync + cp -al semelhante àquele mostrado no link (essa página era minha original em algum momento em 2005, e eu não modifiquei muito as coisas desde então) tanto para meus backups pessoais quanto para o gerenciamento dos backups online + onsite e online + offite no trabalho.

Quanto espaço isso depende do tamanho e da freqüência com que os arquivos são alterados e excluídos. Para nós, manter instantâneos diários por mais de um ano dessa maneira não ocupa muito mais espaço do que três cópias completas dos dados, pois a maioria dos nossos arquivos nos compartilhamentos gerais de rede não são modificados ou removidos com frequência. De fato, para muitos dos instantâneos, a estrutura de diretórios ocupa mais espaço do que os dados nos arquivos alterados.

Uma coisa a ser cautelosa é que, porque cada cópia da mesma versão de um arquivo é de fato os mesmos dados, a corrupção no disco pode matar o arquivo em todos os seus instantâneos de uma só vez, então ainda há um caso para manter várias cópias. Nós minimizamos isso tendo várias cópias em máquinas diferentes e todas as máquinas usando RAID1 para proteger contra possíveis problemas físicos. Outra maneira de resolver isso se você tiver apenas um local de backup online é manter duas cópias e sincronizá-las individualmente ou forçar uma atualização completa ocasionalmente (digamos, uma vez por mês ou uma vez por semana) para que você acabe com grupos de instantâneos Por exemplo, para uma atualização mensal forçada, todos os arquivos idênticos em instantâneos de janeiro são o mesmo bloco de dados, como em fevereiro, mas há pelo menos duas cópias dos dados reais, se existirem em ambos os meses. >     

por 09.01.2011 / 15:12
4

Se você não habilitar --delete, os arquivos não serão excluídos sim. Embora um arquivo possa ser truncado para 0 bytes, se era o que estava na origem.

Confira também a opção --backup para ver se isso é adequado para o que você está fazendo.

Como você vai evitar que a corrupção de dados seja simplesmente copiada e destrua sua única cópia de backup, ou você está arquivando-a em algum lugar?

Dependendo da aparência da fonte e de como ela muda, você poderá, com o tempo, acumular muitos dados antigos e antigos dessa forma, se nunca os excluir.

    
por 09.01.2011 / 13:09
4

Dê uma olhada no rsnapshot . Ele faz um rsync para arquivos modificados, mas cria um hardlink para arquivos não modificados desde a última rotação. É quase tão simples de usar como o rsync bruto, mas você pode salvar esse espaço que está preocupado.

    
por 09.01.2011 / 13:34
1

O que eu pessoalmente uso é o rsync usando hard-links e manter 5 cópias, o truque é, se o arquivo não mudar, não vai ocupar espaço extra dessa maneira, e torna muito fácil a recuperação se algo explode.

#!/bin/sh
BACKUP_DIR=/mnt/data-3/backups/

cd ${BACKUP_DIR}
#remove the oldest backup
rm -rf backup.4 backup.4.log.bz2 &>/dev/null
recycle() {
        i=$1; y=$(($i+1))
        b=${2-backup}
        mv "${b}.$i" "${b}.$y" &>/dev/null
        mv "${b}.$i.log.bz2" "${b}.$y.log.bz2" &>/dev/null
}
recycle 3
recycle 2
recycle 1
recycle 0

OPTS="--numeric-ids --delete --delete-after --delete-excluded"
DIRS_TO_BACKUP="/home /var"
nice -n20 ionice -c2 -n2 rsync -axlHh -v --link-dest=../backup.1 ${OPTS} ${DIRS_TO_BACKUP} backup.0/ --exclude-from=/root/.rsync-exclude 2>&1 | bzip2 -9 > backup.0.log.bz2

meu /root/.rsync-exclude:

*~
*.cmd*
*.log
cache4
/tmp/
.ccache
.thumbnails/
lost+found
/var/log/
/var/run/
/var/lock/
/var/tmp/
/usr/src/
    
por 09.01.2011 / 14:01

Tags