Após um ano e meio de desenvolvimento o lançamento de a nova versão de rsync 3.2.4, versão na qual foram feitas uma série de melhorias e correções de bugs.
Para aqueles que são novos no Rsync, você deve saber que este é um utilitário de sincronização e backup de arquivos que oferece transmissão eficiente de dados incrementais, que também opera com dados compactados e criptografados.
Usando uma técnica de codificação delta, permite sincronizar arquivos e diretórios entre duas máquinas em uma rede ou entre dois locais na mesma máquina, minimizando o volume de dados transferidos.
Um recurso importante do Rsync não encontrado na maioria dos programas ou protocolos é que a cópia ocorre com apenas uma transmissão em cada direção. O Rsync pode copiar ou exibir diretórios contidos e copiar arquivos, opcionalmente usando compactação e recursão.
Atuando como um daemon de servidor, o Rsync escuta por padrão na porta TCP 873, servindo arquivos no protocolo Rsync nativo ou por meio de um terminal remoto, como RSH ou SSH. No último caso, o executável do cliente Rsync deve ser instalado no host local e remoto.
Principais novidades do Rsync 3.2.4
Nesta nova versão que se apresenta do Rsync 3.2.4 um novo método de proteção de argumento foi proposto a partir da linha de comando que se assemelha à opção “–protect-args” (“-s”) disponível anteriormente, mas não quebra o script rrsync (rsync restrito).
A proteção se resume a caracteres de escape especiais, incluindo espaços, ao passar solicitações para um shell externo. O novo método não escapa caracteres especiais dentro de um bloco entre aspas, permitindo que um nome de arquivo seja citado sem mais escapes, por exemplo, "rsync -aiv host: 'a simple file.pdf' agora é permitido". Para retornar o comportamento antigo, propõe-se a opção “–old-args” e a variável de ambiente “RSYNC_OLD_ARGS=1”.
Outra das mudanças que se destacam nesta nova versão é que capacidade implementada para atualizar atributos xattrs para arquivos no modo somente leitura se o usuário tiver permissão para alterar os direitos de acesso (por exemplo, ao executar como root).
Adicionado e habilitado pelo parâmetro padrão “–info=NONREG” para exibir avisos sobre a transferência de arquivos especiais.
o script atomic-rsync foi reescrito em Python e estendido com a capacidade de ignorar códigos retornar diferente de zero. O padrão é ignorar o código 24, que é retornado quando os arquivos desaparecem durante a execução do rsync (por exemplo, o código 24 é retornado para arquivos temporários que estavam presentes no momento da indexação inicial, mas foram removidos no momento da indexação inicial). de migração).
Resolvido um problema de longa data com o tratamento de caracteres de ponto decimal com base na localidade atual. Para scripts projetados para processar apenas o caractere "." em números, em caso de violação de compatibilidade, você pode definir a localidade “C”.
Além disso, também foi corrigida uma vulnerabilidade (CVE-2018-25032) no código incluído da biblioteca zlib que causa um estouro de buffer ao tentar compactar uma sequência de caracteres especialmente preparada.
Das outras mudanças que se destacam nesta nova versão:
- Implementou a opção “–fsync” para chamar a função fsync() em cada operação de arquivo para liberar o cache de disco.
- O script rsync-ssl usa a opção "-verify_hostname" ao acessar o openssl.
- Adicionada a opção “–copy-devices” para copiar os arquivos do dispositivo como arquivos normais.
- Consumo de memória reduzido ao transferir incrementalmente um grande número de diretórios pequenos.
- Na plataforma macOS, a opção “–atimes” está habilitada.
- O script rrsync (rsync restrito) foi reescrito em Python.
- Adicionadas novas opções "-munge", "-no-lock" e "-no-del".
- As opções de bloco “–copy-links” (-L), “–copy-dirlinks” (-k) e “–keep-dirlinks” (-K) são habilitadas por padrão para que os ataques que manipulem links simbólicos para diretórios sejam mais difícil.
- O script munge-symlinks foi reescrito em Python.
Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir