
Há alguma diferença se eu executar o rsync com host remoto (ssh: //) como origem/destino ou usar o caminho local para compartilhar o diretório montado via sshfs?
Poderia haver diferenças em relação à segurança ou velocidade de cópia sem o uso de switches, basta usar o modo de arquivo rsync e o caminho do host remoto (ssh). O mesmo com a montagem sshfs apenas com origem e destino (sem alterações de cifra, apenas padrão).
Responder1
SSHFS é conveniente, mas não combina bem com o rsync ou, de maneira mais geral, com ferramentas de sincronização.
O maior problema é que o SSHFS elimina em grande parte as otimizações de desempenho do rsync. Em particular, para arquivos médios a grandes, quando o rsync vê que um arquivo foi modificado, ele calcula somas de verificação em partes do arquivo de cada lado para transferir apenas as partes que foram modificadas. Esta é uma otimização somente se a largura de banda da rede for significativamente menor que a largura de banda do disco, o que geralmente é o caso. Mas com o SSHFS, a largura de banda do “disco” é na verdade a largura de banda da rede, então o rsync teria que ler o arquivo inteiro para determinar o que copiar. Na verdade, com uma cópia local (que é, no que diz respeito ao rsync, mesmo que um dos lados esteja em SSHFS), o rsync apenas copia o arquivo inteiro.
O SSHFS também prejudica o desempenho se houver muitos arquivos pequenos. O Rsync precisa verificar pelo menos os metadados de cada arquivo para determinar se ele foi modificado. Com o SSHFS, isso requer uma viagem de ida e volta de rede para cada arquivo. Com o rsync via SSH, os dois lados podem trabalhar em paralelo e transferir informações em massa, o que é muito mais rápido.
Em termos de restrições de acesso, o SSHFS requer acesso SFTP, enquanto o rsync requer a capacidade de executar código (especificamente, o programa rsync) através de um shell. Se o usuário não tiver uma conta shell, é possível e comum fornecer uma conta com um shell especial que permite apenas a execução de alguns programas, incluindo sftp-server
e rsync
. VerVocê precisa de um shell para SCP?
Se você estiver apenas copiando novos arquivos e não houver um número muito grande de arquivos, não haverá diferença significativa de desempenho.
O SSHFS estabelece uma conexão SSH quando o sistema de arquivos é montado e mantém essa conexão até que seja desmontado. O Rsync faz uma nova conexão cada vez que você o executa, mas você pode usar orecurso de multiplexação e carona em uma única conexão principalpara evitar autenticar todas as vezes.
SSHFS é um sistema de arquivos FUSE e, portanto, suporta apenas metadados Unix tradicionais e ACL. O Rsync pode transferir atributos estendidos (você precisa usar rsync -aAX
, observe que um plano -a
preserva apenas os metadados tradicionais do Unix).
Responder2
Para responder à sua pergunta principal: sim, existem diferenças. Com sshfs
uma conexão existente para permitir acesso a arquivos remotos através de um canal seguro e com rsync sobre ssh, esse canal seguro é configuradopara conversar com uma instância remota do rsync.
Para responder à sua pergunta secundária: O rsync sobre ssh será mais rápido para a maioria, senão para todas as instâncias, porque o rsync no sistema remoto fornece mais inteligência na localização de arquivos que não precisam de sincronização, mas principalmente porque é executado em paralelo ao seu rsync local para coletar essas informações.
A segurança de ambas as formas é, assumindo configuração semelhante dos parâmetros ssh (comprimento da chave, algoritmos), a mesma. Quais são os padrões para seu sistema de origem e destino depende das combinações de distribuições nesses sistemas.