Respostas:
Muitos, mas vou citar alguns do topo da minha cabeça.
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).
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).
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 --daemon
nã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.
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.
Posso negar totalmente algumas das opções usadas pelo cliente rsync e não divertir no final do servidor, como não permitir a --delete
opção.
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.
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.
O cliente não precisa conhecer o layout do sistema de arquivos etc. do servidor para o qual está empurrando / puxando de / para
rsync
usando o SSH?
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.
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.
O SSH sobrecarga devido, por exemplo, ao uso de criptografia. Portanto, em teoria, você deve obter maior produtividade com um daemon de servidor rsync.