Adicionando dois bits úteis ao thread re rsync: alterando o código e usando --update
:
De acordo com o post de Wolfman, cp -ax
é elegante e legal para coisas locais.
No entanto, rsync
é incrível também. Além da resposta de Michael -W
, alterar o código também pode acelerar as coisas (leia as implicações de segurança).
rsync --progress --rsh="ssh -c blowfish" / /mnt/dest -auvx
Há alguma discussão (e benchmarks) em torno do local sobre uma CPU lenta ser o gargalo real, mas parece me ajudar quando a máquina é carregada fazendo outras coisas simultâneas.
Um dos outros grandes motivos para usar o rsync em uma cópia grande e recursiva como essa é por causa da opção -u (ou --update ). Se houver um problema durante a cópia, você poderá corrigi-lo e o rsync continuará de onde parou (não acho que o scp tenha isso). Fazendo-o localmente, o cp também possui uma opção -u.
(Não sei ao certo quais são as implicações de --update e --whole-file juntas, mas elas sempre parecem funcionar sensatamente para mim nesse tipo de tarefa)
Sei que isso não é um tópico sobre os recursos do rsync, mas alguns dos mais comuns que uso para isso são:
- - delete-after etc (como Michael mencionou no acompanhamento), se você deseja sincronizar o novo sistema com o local original ou algo assim. E,
- --exclude - para pular diretórios / arquivos, para instâncias como copiar / criar um novo sistema para um novo local e pular diretórios pessoais do usuário etc. (você está montando residências de outro lugar ou criando novos usuários etc.).
Aliás, se eu tiver que usar o Windows, uso o rsync da cygwin para fazer grandes cópias recursivas, por causa da morte cerebral do explorador querer começar do início (embora eu ache o Finder o OS X ainda pior)
dd
?dd if=/dev/sda1 of=/dev/sdb1 bs=4096