Por que nem sempre usar o rsync?

17

Eu queria perguntar: existe alguma razão para não usar rsyncpara tudo e abandonar cp?
Eu não estava ciente rsynce agora não sei por que cpé necessário.

Jim
fonte
9
rsyncnão está disponível em todos os lugares, cpé.
Tapete de
3
Qual instalação? Linux? Qual? Unix? idem. BSD? Você nunca sabe o que vem por padrão.
terdon
5
Não existe realmente uma "instalação padrão" para Linux. Toda distro tem seu conjunto de pacotes principais e uma variedade de variações. Além disso, quando você precisa trabalhar em muitos sistemas, o uso das ferramentas disponíveis em qualquer lugar facilita as coisas.
Tapete de
4
@ Mat: Existe uma instalação padrão (ou núcleo) na medida em que as distribuições linux atendem, através da base de usuários GNU base, com POSIX, que requer (e define o funcionamento de) cpmas não rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks
1
Eu tenho certeza que o Debian GNU / Linux instala o rsync por padrão. No entanto, ele não está disponível no ambiente de instalação e resgate. (Eu usei que mais cedo hoje para transferir o conteúdo da minha partição raiz de um disco para outro Usado os 7.1.0 amd64 instalar DVD..)
um CVn

Respostas:

24

A rigor, sim, você sempre pode usar rsync. De man rsync(ênfase minha):

O Rsync é uma ferramenta de cópia de arquivos rápida e extraordinariamente versátil. Ele pode copiar localmente para / de outro host em qualquer shell remoto ou para / de um daemon rsync remoto. Ele oferece um grande número de opções que controlam todos os aspectos de seu comportamento e permitem que especificações muito flexíveis do conjunto de arquivos sejam
copiadas. É famoso por seu algoritmo de transferência delta, que reduz a quantidade de dados enviados pela rede, enviando apenas as diferenças entre os arquivos de origem e os arquivos existentes no destino. O Rsync é amplamente usado para backups e espelhamento e como um comando de cópia aprimorado para o uso diário.

Agora, às vezes não vale a pena digitar esses poucos caracteres extras apenas para usar um tanque para matar uma mosca. Além disso, rsyncmuitas vezes não é instalado por padrão, então cpé bom ter isso.

terdon
fonte
Você quer dizer não disponível como parte da instalação padrão, mas um download separado?
21713 Jim
1
@ Jim sim, às vezes você precisa se instalar rsyncdependendo do sistema em que se encontra. Se você não tiver rootacesso, isso pode ser difícil. cpé POSIX e sempre estará lá.
terdon
9
cpfaz parte dos coreutils do GNU, por isso é sempre instalado em todos os sistemas Linux enquanto rsyncnão é.
Martin von Wittich
1
sometimes it is just not worth typing those few extra characters- Eu fiz um alias pcp(para "cópia de progresso") para isso;)
Izkata 15/13
19

Rsync pode ser mais lento do que cpem algumas situações. Por exemplo, quando o destino existe e o rsync acaba fazendo algumas comparações caras para cada bloco, não encontra blocos iguais e copia o arquivo de origem completo de qualquer maneira.

Além disso, quando os arquivos de destino não existem, o rsync não oferece nenhuma vantagem acima do cp.

maxschlepzig
fonte
1
Abaixo, a metodologia de cópia do rsync é significativamente mais lenta. Consulte unix.stackexchange.com/questions/374071/… . Um traço de cp mostra (no momento em que este artigo foi escrito), uma simples sequência de operações de leitura de 32 KB / gravação de 32 KB. Enquanto isso, o Rsync faz uma gravação de leitura / 4092 bytes + 4 bytes no soquete / leitura do soquete / gravação de 250 KB no arquivo. Estou fazendo um rsync de 36T de arquivos de tamanho misto com taxa de transferência de 130MB / s. Eu posso triplicar isso com cp -a. O rsync vence, como você diz quando deseja "fazer 'isso' parecer 'isso'" em diretórios que já são semelhantes.
Mike S
7

Eu acho rsyncque não lida com copiar arquivos esparsos de maneira direta. cppor padrão lida com isso muito bem.

wcang
fonte
6
Isso acontece com a -Sbandeira.
terdon
2
@terdon, Bem, consulte este artigo: barricane.com/rsync-vm-sparse-inplace-kvm-vmware .
wcang
Ah, obrigado, você deve adicionar isso à sua resposta. Eu apenas procurei rapidamente na página de manual sparse.
terdon
4

Como esse cpsinalizador está ausente no rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)
Dalker
fonte
Não, embora exista -n(execução a seco) no rsync, que pode ser um substituto para esse recurso.
Niloct