Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Linux Enterprise Desktop / Guia de Administração / Tarefas comuns / Cópia de arquivo com RSync
Aplica-se a SUSE Linux Enterprise Desktop 15 SP6

15 Cópia de arquivo com RSync

Hoje em dia, um usuário comum possui vários computadores: em casa e no local de trabalho, um laptop, um smartphone ou um tablet. Isso torna muito mais importante a tarefa de manter os arquivos e documentos sincronizados entre vários dispositivos.

Atenção
Atenção: Risco de perda de dados

Antes de começar a usar uma ferramenta de sincronização, você deve se familiarizar com os recursos e as funcionalidades. Faça backup de seus arquivos importantes.

15.1 Visão geral conceitual

Para sincronizar uma grande quantidade de dados em uma conexão de rede lenta, o Rsync oferece um método confiável para transmitir apenas as mudanças nos arquivos. Isso não se aplica apenas a arquivos de texto, mas também a arquivos binários. Para detectar as diferenças entre os arquivos, o Rsync os subdivide em blocos e calcula seus checksums.

A detecção de mudanças requer uma determinada capacidade de processamento. Portanto, verifique se as máquinas em ambas as extremidades têm recursos suficientes, incluindo memória RAM.

O Rsync pode ser útil principalmente quando grandes quantidades de dados que contêm apenas pequenas mudanças precisam ser transmitidas regularmente. Geralmente, esse é o caso quando se trabalha com backups. O Rsync também pode ser útil para espelhamento de servidores para testes que armazenam árvores completas de diretórios de servidores Web em um servidor Web na DMZ.

Apesar do nome, o Rsync não é uma ferramenta de sincronização. Rsync é uma ferramenta que copia dados apenas em uma direção de cada vez. Ele não faz e não pode fazer o contrário. Se você precisa de uma ferramenta bidirecional capaz de sincronizar a origem e o destino, use o Csync.

15.2 Sintaxe básica

O Rsync é uma ferramenta de linha de comando que tem a seguinte sintaxe básica:

rsync [OPTION] SOURCE [SOURCE]... DEST

Você pode usar o Rsync em qualquer máquina local ou remota, desde que tenha acesso e permissões de gravação. É possível ter várias entradas SOURCE. Os espaços reservados SOURCE e DEST podem ser caminhos, URLs ou ambos.

Veja a seguir as opções mais comuns do Rsync:

-v

Gera um texto mais verboso

-a

Modo de arquivamento: copia arquivos recursivamente e preserva marcações de horário, propriedade de usuário/grupo, permissões de arquivos e links simbólicos

-z

Comprime os dados transmitidos

Nota
Nota: Total de barras à direita

Ao trabalhar com o Rsync, você deve prestar atenção especial às barras à direita. Uma barra à direita após o diretório indica o conteúdo do diretório. Nenhuma barra à direita indica o próprio diretório.

15.3 Copiando arquivos e diretórios localmente

A seguinte descrição pressupõe que o usuário atual tem permissões de gravação para o diretório /var/backup. Para copiar um único arquivo de um diretório em sua máquina para outro caminho, use o seguinte comando:

> rsync -avz backup.tar.xz /var/backup/

O arquivo backup.tar.xz é copiado para /var/backup/. O caminho absoluto é /var/backup/backup.tar.xz.

Lembre-se de adicionar a barra à direita após o diretório /var/backup/. Se você não inserir a barra, o arquivo backup.tar.xz será copiado para /var/backup (arquivo), e não dentro do diretório /var/backup/.

Copiar um diretório é semelhante a copiar um arquivo único. O seguinte exemplo copia o diretório tux/ e seu conteúdo para o diretório /var/backup/:

> rsync -avz tux /var/backup/

Localize a cópia no caminho absoluto /var/backup/tux/.

15.4 Copiando arquivos e diretórios remotamente

A ferramenta Rsync é necessária em ambas as máquinas. Para copiar arquivos de ou para diretórios remotos, é necessário um endereço IP ou um nome de domínio. Um nome de usuário será opcional caso os nomes de usuários atuais na máquina local e remota sejam os mesmos.

Para copiar o arquivo file.tar.xz de seu host local para o host remoto 192.168.1.1 com os mesmos usuários (sendo local e remoto), use o seguinte comando:

> rsync -avz file.tar.xz  tux@192.168.1.1:

Dependendo do que você preferir, estes comandos também serão possíveis e equivalentes:

> rsync -avz file.tar.xz 192.168.1.1:~
> rsync -avz file.tar.xz 192.168.1.1:/home/tux

Em todos os casos com configuração padrão, será solicitado para você inserir a frase secreta do usuário remoto. Esse comando copia o file.tar.xz para o diretório pessoal do usuário tux (normalmente, /home/tux).

Copiar um diretório remotamente é semelhante a copiar um diretório localmente. O seguinte exemplo copia o diretório tux/ e seu conteúdo para o diretório remoto /var/backup/ no host 192.168.1.1:

> rsync -avz tux 192.168.1.1:/var/backup/

Supondo que você tenha permissões de gravação no host 192.168.1.1, poderá encontrar a cópia no caminho absoluto /var/backup/tux.

15.5 Configurando e usando um servidor Rsync

O Rsync pode ser executado como um daemon (rsyncd) que escuta na porta padrão 873 para conexões recebidas. Esse daemon pode receber destinos de cópia.

A descrição a seguir explica como criar um servidor Rsync em jupiter com um destino de backup. Esse destino pode ser usado para armazenar os backups. Para criar um servidor Rsync, faça o seguinte:

Procedimento 15.1: Configurando um servidor Rsync
  1. No jupiter, crie um diretório para armazenar todos os seus arquivos de backup. Neste exemplo, usamos /var/backup:

    # mkdir /var/backup
  2. Especifique a propriedade. Neste caso, o diretório pertence ao usuário tux no grupo users:

    # chown tux.users /var/backup
  3. Configure o daemon rsyncd.

    Separamos o arquivo de configuração em um arquivo principal e determinados módulos que contêm o destino de backup. Isso facilita adicionar outros destinos futuramente. É possível armazenas valores globais nos arquivos /etc/rsyncd.d/*.inc, enquanto os módulos são armazenados nos arquivos /etc/rsyncd.d/*.conf:

    1. Crie um diretório /etc/rsyncd.d/:

      # mkdir /etc/rsyncd.d/
    2. No arquivo de configuração principal /etc/rsyncd.conf, adicione as seguintes linhas:

      # rsyncd.conf main configuration file
      log file = /var/log/rsync.log
      pid file = /var/lock/rsync.lock
      
      &merge /etc/rsyncd.d 1
      &include /etc/rsyncd.d 2

      1

      Faz a fusão dos valores globais dos arquivos /etc/rsyncd.d/*.inc no arquivo de configuração principal.

      2

      Carrega os módulos (ou destinos) dos arquivos /etc/rsyncd.d/*.conf. Esses arquivos não devem conter nenhuma referência a valores globais.

    3. Crie o módulo (destino de backup) no arquivo /etc/rsyncd.d/backup.conf com as seguintes linhas:

      # backup.conf: backup module
      [backup] 1
         uid = tux 2
         gid = users 2
         path = /var/backup 3
         auth users = tux  4
         secrets file = /etc/rsyncd.secrets 5
         comment = Our backup target

      1

      O destino de backup. Você pode usar qualquer nome que desejar. No entanto, convém nomear um destino de acordo com sua finalidade e usar o mesmo nome em seu arquivo *.conf.

      2

      Especifica o nome de usuário ou nome do grupo que é usado quando a transferência de arquivos é feita.

      3

      Define o caminho para armazenar os backups (da Passo 1).

      4

      Especifica uma lista separada por vírgulas de usuários permitidos. Em sua forma mais simples, ela contém os nomes de usuário que têm permissão para conectar-se a este módulo. Em nosso caso, apenas o usuário tux é permitido.

      5

      Especifica o caminho de um arquivo que contém as linhas com os nomes de usuário e as senhas simples.

    4. Crie o arquivo /etc/rsyncd.secrets com o seguinte conteúdo e substitua PASSPHRASE:

      # user:passwd
      tux:PASSPHRASE
    5. Verifique se o arquivo pode ser lido apenas por root:

      # chmod 0600 /etc/rsyncd.secrets
  4. Inicie e habilite o daemon rsyncd com:

    # systemctl enable rsyncd
    # systemctl start rsyncd
  5. Teste o acesso ao servidor Rsync:

    > rsync jupiter::

    Você deve ver uma resposta parecida com esta:

    backup          Our backup target

    Do contrário, verifique o arquivo de configuração, as configurações de rede e de firewall.

As etapas acima criam um servidor Rsync que agora pode ser usado para armazenar backups. O exemplo também cria um arquivo de registro listando todas as conexões. Esse arquivo é armazenado em /var/log/rsyncd.log. Isso é útil para depurar suas transferências.

Para listar o conteúdo do destino de backup, use o seguinte comando:

> rsync -avz jupiter::backup

Esse comando lista todos os arquivos presentes no diretório /var/backup no servidor. Essa solicitação também é registrada no arquivo de registro /var/log/rsyncd.log. Para iniciar uma transferência real, especifique um diretório de origem. Use . para o diretório atual. Por exemplo, o comando a seguir copia o diretório atual para o servidor de backup Rsync:

> rsync -avz . jupiter::backup

Por padrão, o Rsync não apaga arquivos e diretórios quando ele é executado. Para habilitar a exclusão, a opção adicional --delete deve ser especificada. Para garantir que nenhum arquivo novo seja apagado, use a opção --update como alternativa. Qualquer conflito ocorrido deve ser resolvido manualmente.

15.6 Mais informações

Csync

Ferramenta de sincronização bidirecional de arquivos. Consulte https://csync.org/.

RSnapshot

Cria backups incrementais. Consulte https://rsnapshot.org.

Unison

Uma ferramenta de sincronização de arquivos semelhante ao CSync, mas com uma interface gráfica. Consulte https://www.seas.upenn.edu/~bcpierce/unison/.

Rear

Uma estrutura de recuperação de desastre. Consulte o Administration Guide of the SUSE Linux Enterprise High Availability, chapter Disaster Recovery with Rear (Relax-and-Recover).