Qual é a necessidade do servidor rsync no modo daemon


29

Eu não entendo a necessidade de um servidor rsync no modo daemon. Quais são os benefícios disso se eu puder usar o rsync com SSH ou telnet?

Respostas:


22

Muitos, mas vou citar alguns do topo da minha cabeça.

  1. E se o ssh / rsh não estiver disponível no servidor remoto ou se eles forem quebrados em termos de configuração ou regras de rede mais rígidas? O uso do rsh / ssh ainda exigiria do cliente (depende da função de remetente ou receptor), mas o lado remoto teria que forçar o binário rsync localmente e estabelecer a conexão com o processo rsync em execução no lado local. O rsh / ssh apenas forneceria um túnel de conexão; No que diz respeito ao rsync, o rsync está se comunicando com o outro processo do rsync através do (s) pipe (s).

  2. Ter um processo rsync no modo daemon tornaria o servidor um servidor parecido com o verdadeiro ftp, em que alguns sistemas de arquivos podem ser disponibilizados através dos módulos rsync. Tudo o resto pode ser evitado. Digamos que eu queira disponibilizar apenas / usr / local e / var para download e recusar qualquer solicitação do cliente rsync para outros downloads. Posso usar a discrição no nível do host ou no sistema de arquivos (módulos) para permitir upload ou download (somente leitura).

  3. Pode controlar os módulos de acesso, autenticação, autorização, registro e sistema de arquivos (estrutura) no nível de host / usuário para download / upload especificamente através de um arquivo de configuração. Toda vez que uma alteração é feita no arquivo de configuração, rsyncd --daemonnão é necessário reiniciar ou HUPped. Também pode controlar quantos clientes podem se conectar ao processo do servidor rsync por vez. Isso é bom, pois não quero que o processo do meu servidor rsyncd sobrecarregue completamente o host nas operações de E / S baseadas na CPU ou no disco.

  4. A funcionalidade chroot pode ser disponibilizada através da configuração do rsyncd no modo daemon. Eu posso usar isso como um recurso de segurança bastante elegante, se quiser evitar que os clientes se conectem ao meu rsyncd para qualquer um dos arquivos / sistemas de arquivos que devem estar protegidos no host e não devem ter acesso externo.

  5. Posso negar totalmente algumas das opções usadas pelo cliente rsync e não divertir no final do servidor, como não permitir a --deleteopção.

  6. Pode ter uma opção para executar alguns comandos / scripts antes e depois do processo rsync. Um exemplo seria relatar e armazenar as estatísticas do rsync no modo pós-transferência.

Estes são alguns deles, mas tenho certeza de que os usuários experientes do rsync podem esclarecer isso.


8
  1. Ocorreu um problema ao tentar sincronizar uma pasta grande entre uma máquina Linux e uma máquina Windows usando o cygwin. Depois de abandonar o túnel SSH em favor do uso do daemon rsync, meus problemas desapareceram.

  2. O cliente não precisa conhecer o layout do sistema de arquivos etc. do servidor para o qual está empurrando / puxando de / para


1
+1 para # 2. Situações como redes de espelhos criam incerteza devido à sua natureza altamente distribuída, por isso é bom poder dissociar decisões locais irrelevantes da operação da rede.
Warren Young

@tim, qual foi o problema que você teve com o Cygwin e rsyncusando o SSH?
Daniel Sokolowski 29/04

3

Um uso comum do rsync é espelhar arquivos públicos de arquivos. O operador da cópia primária não deseja permitir o acesso remoto ao shell do arquivo morto, mas deseja que os voluntários que executam os espelhos remotos possam obter com eficiência uma cópia completa dos arquivos. O Rsync funciona muito bem para criar um espelho, pois só fará o download de bits alterados e, se houver uma ligeira interrupção na rede, não fará o download novamente de um arquivo grande inteiro (imagens de CD / DVD).

O protocolo bit torrent, na verdade, pode ser uma escolha melhor para isso agora, mas o rsync foi lançado muitos anos antes.

Mesmo agora, muitos arquivos importantes ainda usam o rsync para espelhos.

Veja: http://www.debian.org/mirror/ftpmirror

O protocolo de espelhamento que recomendamos é o rsync.


Veja também o zsync para esse tipo de aplicativo - é como o rsync, mas faz todo o trabalho duro no cliente, não no servidor. O servidor precisa apenas de uma lista pré-calculada de hashes.
Rjmunro 3/11

1

Você pode fornecer serviços rsync a uma extranet e permitir sincronizações dessa maneira sem precisar expor o ssh.

No modo daemon, o rsync calcula propensamente somas de verificação locais mais rapidamente e, portanto, é um conjunto melhor se você espera vários clientes paralelos. Com o comando independente, as somas de verificação precisam ser recalculadas para cada sessão.


0

O SSH sobrecarga devido, por exemplo, ao uso de criptografia. Portanto, em teoria, você deve obter maior produtividade com um daemon de servidor rsync.


2
Não vou votar contra você por isso, porque sim, existe uma rede teórica em que a sobrecarga de criptografia é importante. Acho que você descobrirá que, se o medir, é insignificante em redes reais, exceto talvez na fase inicial de negociação de chaves. Depois que os pacotes estão fluindo, o tempo de criptografia é ingerido pela latência da rede.
Warren Young

@WarrenYoung Máquina idosa que hospeda um servidor rsync público em um grande cano.
Gilles 'SO- stop be evil'

1
@ Gilles - Uma máquina lenta o suficiente para não poder criptografar rápido o suficiente para manter o cano cheio provavelmente deve ter problemas de largura de banda do disco primeiro. Bottom line, eu gostaria de ver as medidas. E antes que alguém publique medições, tente duplicar o tamanho da transferência e verifique se o efeito que você mediu também dobra. Caso contrário, você está contando as principais negociações, que concederei antecipadamente, levam um tempo mensurável.
Warren Young

Paralelizar o rsync seria a melhor opção com o GNU paralelo nesse caso.
Nikhil Mulley
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.