Estou comprando um disco rígido externo para fazer backup dos computadores da minha casa (finalmente !!). Espero usar o rsync. Eu vi um exemplo que faz (ou parece fazer) exatamente o que eu quero. Algo assim:
rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups
No entanto, ao examinar a documentação e os exemplos do rsync e assim por diante, as coisas começaram a parecer MUITO mais complicadas do que isso. Redes e daemons e jargões, oh meu Deus!
Suponho que nada disso seja necessário, desde que eu esteja apenas sincronizando de um computador para uma unidade externa conectada a um firewire. Estou errado em assumir isso? As coisas realmente serão mais complicadas do que esse comando inócuo?
Respostas:
O Rsync funciona bem em unidades locais. No entanto, se ele detecta caminhos locais, entra automaticamente no modo --whole-file, que não copia as diferenças, mas apenas copia o arquivo de origem sobre o arquivo de destino. O Rsync ainda ignorará os 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 e copiar apenas os bits alterados.
fonte
Eu uso o rsync com os seguintes sinalizadores memoráveis como 'glop' e 'trunc' e 'v'.
rsync -gloptrunc $srcdir $dstdir
Um breve guia:
nota: nos sistemas de arquivos locais, isso é substituído e os arquivos inteiros são copiados.
Eu sempre corro o procedimento acima para garantir que funcione e, em seguida, removo o sinalizador 'n' que fica satisfeito com os resultados.
Os principais recursos das combinações acima:
Eu uso isso para manter duas máquinas sincronizadas ou para subdividir em sincronização (como fazer backup em uma unidade USB).
Como uma das outras postagens declaradas anteriormente, a 'soma de verificação' pode ser forçada a DESLIGAR se você estiver lidando com unidades locais.
Em alguns casos raros, tive que adicionar parâmetros adicionais para explicar as alterações nas contas de login em máquinas remotas, alterar portas e até especificar onde 'rsync' mora no host remoto ... mas esses não são diretamente aplicáveis ao seu questão.
fonte
rsync -gloptrunc --delete --delete-excluded $srcdir $dstdir
. O--delete
diz para excluir qualquer coisa no destino que não está na fonte, e--delete-excluded
diz também apagar arquivos excluídos no destino que normalmente não ser rastreado ou copiado. Se você usar--delete-excluded
, tecnicamente não precisará usar também--delete
, mas não há problema em usá-los de qualquer maneira. Os detalhes estão nas páginas de manual aqui: linux.die.net/man/1/rsync .Nada disso é necessário, você pode usar o rsync sem daemons ou qualquer outro tipo de configuração APENAS BEM!
Basta usar o comando rsync e você estará pronto.
fonte
A julgar pelo caminho no seu comando rsync, eu estaria certo ao 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 ( http://www.bombich.com/software/ccc.html ), que usa o rsync.
Muito mais fácil do que tentar corrigir seu próprio script. Uma vantagem é que o Time Machine e o CCC fornecerão backups incrementais.
fonte
O exemplo que você usou parece que funcionará bem para backups.
Uma coisa que você pode considerar ao usar o rsync, no entanto, é usar a opção --link-dest. Isso permite manter vários backups, mas usar links físicos para arquivos inalterados, fazendo com que todos os backups ocupem o espaço de um incremental. Um exemplo de uso seria:
Isso pressupõe que você tenha um backup datado para 12 de junho e deseje criar um novo em 13 de junho. Você pode querer omitir a opção -v se não desejar uma impressão de cada arquivo.
fonte
Realmente depende se você está executando bancos de dados ou não. O Rsync obtém um instantâneo de todos os arquivos e ignora as gravações intervenientes. Se você deseja fazer backup de um banco de dados, verifique a configuração de um filtro de ignorados e a execução de ferramentas de despejo de banco de dados antes do rsync.
fonte
Seu comando, como escrito, deve funcionar, no entanto, você pode querer olhar para um programa chamado rsnapshot, construído sobre o rsync e mantém várias versões de arquivos para que você possa voltar e ver as coisas como eram na semana passada ou no mês passado. A configuração é bastante fácil e é realmente boa em otimização de espaço; portanto, a menos que você tenha muita rotatividade, não ocupa muito mais espaço do que um único backup.
fonte
Você não mencionou seu sistema operacional. Seguindo a premissa de que seu sistema operacional é baseado em * nix, seu comando é bom.
No entanto, se uma ou ambas as unidades tiverem o formato NTFS, sendo acessadas a partir do * nix ou mesmo a partir do Windows usando o Mobaxterm / cygwin, a funcionalidade incremental do rsync não funcionará bem com
rsync -a (archive flag)
Se as unidades NTFS estiverem envolvidas, você poderá usar:
Faça o download do cliente Mobaxterm ssh para ter a funcionalidade rsync no Windows.
Aqui estão mais informações sobre o uso do rsync com unidades NTFS
fonte
Eu tentei usar o rsync para backup, mas acabou sendo uma bagunça. O rsync é mais adequado para 'sincronizar' do que para fazer backup. E é sempre para comparar arquivos grandes.
Eu pesquisei um pouco e tentei vários (basicamente testando todos, desde o backup de pesquisa do apt-cache no ubuntu).
Finalmente, acabei com ' backup2l - ferramenta de backup / restauração de baixa manutenção', é fácil. 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 na linha de comando, mas você também pode automatizá-la.
fonte
Tente dirvish para fazer o backup. http://www.dirvish.org/
Ele usa os hardlinks do rsync nos chamados cofres. Você pode manter o máximo de despejos mais antigos que o disco USB aguentar. Ou configure-o de forma automatizada.
Uma vez que você entenda a idéia de direcionar, é mais conveniente usar do que o rsync com todas as suas opções.
fonte
Eu encontro uma solução para computadores baseados no Windows: http://www.itefix.no/i2/node/10650
Para copiar D: \ partição para uma unidade externa K: \
rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k
fonte