Usando o Rsync para fazer backup em uma unidade externa

15

Estou comprando um disco rígido externo para fazer o backup dos computadores da minha casa (finalmente !!). Eu estou esperando para usar o rsync. Eu vi um exemplo que faz (ou parece fazer) exatamente o que eu quero. Algo parecido com isto:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

No entanto, quando observamos a documentação e exemplos do rsync e assim por diante, as coisas começaram a parecer MUITO mais complicadas do que isso. Networking e daemons e jargão, oh meu!

Estou assumindo que nada disso é necessário, desde que eu esteja apenas passando de um computador para uma unidade externa conectada por firewire. Eu estou errado em assumir isso? As coisas realmente serão mais complicadas do que esse comando inócuo?

    
por stalepretzel 13.06.2009 / 23:27

11 respostas

9

O Rsync funciona bem em unidades locais. No entanto, se detectar caminhos locais, ele entrará automaticamente no modo --whole-file, que não copia os diffs, mas apenas copia o arquivo de origem sobre o arquivo de destino. O Rsync ainda irá ignorar arquivos que não foram alterados. Quando a largura de banda entre a origem e o destino é alta (como dois discos locais), isso é muito mais rápido do que ler os dois arquivos, copiando apenas os bits alterados.

    
por 13.06.2009 / 23:29
25

Eu uso o rsync com os seguintes flags facilmente memoráveis como 'glop' e 'trunc' e 'v'.

rsync -gloptrunc $srcdir $dstdir

Um breve guia:

  • g - preserva as informações de propriedade do grupo
  • l - copia links simbólicos como links simbólicos
  • o - preserva as informações do proprietário
  • p - preserva as permissões
  • t - preserva os timestamps
  • r - recurse pelos diretórios
  • u - update, pule todos os arquivos mais recentes
  • [n] - não, não faça isso, faça uma execução a seco
  • c - soma de verificação, tentativa de somas de verificação em blocos de arquivos quando possível (*)
    Nota: em sistemas de arquivos locais, isso é substituído e arquivos inteiros são copiados.
  • v - verbose

Eu sempre uso o código acima para ter certeza de que funciona e, em seguida, removo o sinalizador 'n' que, quando estiver satisfeito com os resultados.

Os principais recursos das combinações acima:

  • Eu o executo em ambas as direções entre dois (ou mais) servidores, sincronizando em ambas as direções. Você atualiza o que você acha que é o mestre no momento.
  • Ele permite que seja o mestre, com a ressalva significativa de que, se você quiser excluir algo, você deve excluí-lo em ambos para ter certeza de que realmente desapareceu, caso contrário, ele volta. li>

Eu uso isso para manter duas máquinas em sincronia ou para manter subdivisões em sincronia (como fazer backup em uma unidade USB).

Como um dos outros posts mencionados anteriormente, o 'checksum' pode ser forçado a OFF se você estiver lidando com drives locais.

Em alguns casos raros, precisei adicionar parâmetros adicionais para explicar as alterações nas contas de login em máquinas remotas, alterar as portas e até mesmo especificar onde o 'rsync' reside no host remoto ... mas elas não são diretamente aplicável à sua pergunta.

    
por 14.06.2009 / 06:13
4

Nada disso é necessário, você pode usar o rsync sem qualquer daemons ou qualquer outro tipo de configuração JUST FINE!

Basta usar o comando rsync e você está pronto.

    
por 13.06.2009 / 23:48
2

A julgar pelo caminho no seu comando rsync, eu estaria certo em pensar que você está usando o Mac OS X?

Pessoalmente, eu optaria por usar o Time Machine (se você estiver usando o Leopard) ou o Carbon Copy Cloner ( link ) que usa o rsync.

Muito mais fácil do que tentar corrigir o seu próprio script. Uma vantagem é que o Time Machine e o CCC fornecerão a você backups incrementais.

    
por 14.06.2009 / 00:13
2

O exemplo que você usou parece funcionar bem para backups.

Uma coisa que você pode querer considerar ao usar o rsync é usar a opção --link-dest. Isso permite que você mantenha vários backups, mas use hard links para todos os arquivos inalterados, fazendo com que todos os backups ocupem o espaço de um backup incremental. Um exemplo de uso seria:

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

Isso pressupõe que você tenha um backup datado para 12 de junho e deseja criar um novo em 13 de junho. Talvez você queira omitir a opção -v se não quiser imprimir todos os arquivos.

    
por 14.06.2009 / 03:55
1

Isso realmente depende se você está executando bancos de dados ou não. O Rsync irá capturar um instantâneo de cada arquivo e ignorar qualquer gravação intermediária. Se você quiser fazer backup de um banco de dados, você deve verificar a configuração de um filtro de ignorar e executar ferramentas de despejo de banco de dados antes do rsync.

    
por 13.06.2009 / 23:59
1

Seu comando como escrito deve funcionar, no entanto você pode querer olhar para um programa chamado rsnapshot que é construído sobre rsync e mantém várias versões de arquivos para que você possa voltar e ver as coisas como estavam na semana passada ou por último mês. A configuração é muito fácil e é muito boa em otimização de espaço, então, a menos que você tenha muita rotatividade, ela não ocupa muito mais espaço do que um único backup.

    
por 14.06.2009 / 21:51
1

Você não mencionou o seu sistema operacional. Partindo do pressuposto de que seu sistema operacional baseado em * nix, seu comando é bom.

No entanto, se uma ou ambas as unidades forem formatadas com NTFS, sendo acessadas de * nix ou mesmo de dentro do Windows usando Mobaxterm / cygwin, então a funcionalidade incremental de rsync não funcionará bem com rsync -a (archive flag)

Se as unidades NTFS estiverem envolvidas, você poderá usar:

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Faça o download do Mobashterm ssh para ter a funcionalidade rsync no Windows.

Aqui está mais informações sobre como usar o rsync com unidades NTFS

    
por 02.03.2018 / 20:47
0

Eu tentei usar o rsync para backup, mas acabou sendo uma bagunça. O rsync é mais adequado para 'sincronizar' do que para backup. E sempre compara arquivos grandes.

Eu pesquisei um pouco e tentei vários (basicamente testando todo mundo a partir do backup de pesquisa do apt-cache no Ubuntu).

Por fim, acabei com o backup2l - ferramenta de backup / restauração de baixa manutenção ', é fácil. Eu gosto da maneira como gerencia o planejamento e a rotação (em níveis). Eu o executo sempre que tenho minha unidade externa USB conectada a partir da linha de comando, mas você também pode automatizá-la.

    
por 14.06.2009 / 00:52
0

Tente dizer para fazer o backup. link
Ele usa os hardlinks do rsync nos chamados cofres. Você pode manter o máximo de seus despejos mais antigos que o disco USB pode suportar. Ou configurá-lo de uma forma automatizada.

Depois de entender a idéia de dirvish, é mais conveniente usar o rsync com todas as suas opções.

    
por 14.06.2009 / 01:25
0

Eu acho uma solução para o computador com Windows: link

Para copiar a partição D: \ para uma unidade externa K: \

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

    
por 22.07.2010 / 09:07

Tags