# Como fazer rsync backup no servidor

Backups desempenham importante papel no planejamento de servidores. Em servidores Linux, faça uso das ferramentas do protocolo de sincronização gratuito [rsync](https://www.ionos.com/pt-br/digitalguide/servidor/ferramentas/rsync/), para configurar e executar backups individuais com eficiência.

## Como configurar rsync backup em servidores Linux

Para fazer rsync backup em servidores que utilizam o sistema operacional Linux, você deve instalar o protocolo no pacote de mesmo nome e criar backups por meio de **comandos no terminal**. Utilizaremos o Ubuntu para ilustrarmos as etapas mais importantes de configuração de um rsync backup, e também apresentaremos exemplos práticos.

Por padrão, o rsync já vem instalado no Ubuntu. Contudo, se você não o encontrar, use o seguinte comando para instalá-lo.

```bash
sudo apt-get install rsync
```

Depois de instalar o rsync, utilize comandos no terminal para **especificar os diretórios de origem e destino**, assim como as opções de backup. O **diretório de origem** e o diretório onde o rsync deve armazenar as **cópias de segurança** devem ser identificados com os caminhos correspondentes. O modo padrão (“Archive”) é executado como mostra o exemplo abaixo:

```bash
rsync -a Diretório-de-origem Diretório-de-destino
```

Dica Use a execução de teste `-n` para verificar se **parâmetros e diretórios** especificados estão corretos, já que especificações incorretas podem levar à perda de dados. Caso algum arquivo não seja copiado corretamente, o problema poderá estar no direito de acesso. Neste caso, tente executar o mesmo comando precedido de `sudo`, para ativar o modo administrador.

## Exemplos de rsync backup

Depois de dominar seus comandos básicos, você perceberá que o rsync é uma ótima ferramenta para **copiar arquivos e criar backups**. Você pode testar comandos individuais em configurações ou usar combinações de parâmetros rsync já populares. Conheça cinco situações em que o rsync backup pode ser utilizado.

### Backup padrão com modo de arquivamento

Por padrão, o **modo de arquivamento** copia todos os arquivos do diretório de origem para o diretório de destino, incluindo os subdiretórios. Autorizações, registros de data e hora e dados do dispositivo são mantidos. Quando combinado com parâmetros, este tipo de backup é o mais adequado e o mais simples de ser feito, na maioria das vezes. Combine o modo de arquivamento com o parâmetro `-v`, por exemplo, para receber **informações detalhadas sobre o status** do processo de backup.

```bash
rsync -av Diretório-de-origem Diretório-de-destino
```

Os respectivos **diretórios de origem e de destino** onde o rsync deve armazenar a **cópia de segurança** devem ter os caminhos especificados.

### Cópia 1 para 1 do diretório de origem

O rsync consegue não somente transferir arquivos de A para B, como também **criar cópias 1 para 1** de pastas e diretórios completos. Neste caso, todos os arquivos presentes na pasta de destino que não tiverem correspondência na pasta de origem serão excluídos, durante a execução do rsync backup.

```bash
rsync -av --delete Diretório-de-origem Diretório-de-destino
```

### rsync backup sem arquivos de formatos específicos

Se você quiser que seu rsync backup exclua arquivos de formatos específicos, utilize o parâmetro `--exclude`. Ele permite a definição de **padrões de caracteres individuais**, que indicam extensões de arquivos que devem ser ignorados pelo rsync. Nosso exemplo instrui a exclusão de arquivos de texto .txt do backup:

```bash
rsync -av --exclude'*.txt' Diretório-de-origem Diretório-de-destino
```

### rsync backup de arquivos de tamanhos específicos

Talvez você não queira excluir arquivos de formatos específicos de um backup, mas sim de **tamanhos** diferentes. Utilize os parâmetros `--min-size` e `--max-size` para definir o tamanho dos arquivos que devem ser copiados. Abaixo, determinamos que somente arquivos com o mínimo de 10 MB e o máximo de 100 MB sejam transferidos:

```bash
rsync -av --min-size=10MB --max-size=100MB Diretório-de-origem Diretório-de-destino
```

### rsync backup com conversão de caracteres

Pode ser que os arquivos presentes no seu diretório precisem passar por uma **adequação de caracteres**. Isso ocorre, por exemplo, em transferências de dados de um servidor Mac para um servidor Linux, já que a Apple usa a formatação UTF8-MAC por padrão, que leva a erros com **caracteres especiais**. O parâmetro `--iconv` **codifica caracteres** presentes no processo de rsync backup. Nosso exemplo transforma UTF8-MAC em UTF8:

```bash
rsync -av --iconv=UTF8-MAC,UTF8 Diretório-de-origem Diretório-de-destino
```

## Parâmetros de rsync backup mais importantes

Utilize **outros parâmetros** para configurar seus processos de backup. Eles podem ser inseridos em códigos de forma abreviada ou por extenso. A tabela abaixo apresenta os parâmetros mais importantes que podem ser utilizados, e combinados entre si, em processos de rsync backup:

<table>
  <thead>
    <tr>
      <th><strong>Parâmetro</strong></th>
      <th><strong>Função</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`-r`, `--reclusive`</td>
      <td>Faz o rsync backup considerar todos os subdiretórios contidos nos diretórios</td>
    </tr>
    <tr>
      <td>`-u`, `--update`</td>
      <td>Instrução para ignorar os arquivos que são mais recentes no diretório de destino do que no de origem</td>
    </tr>
    <tr>
      <td>`-c`, `--checksum`</td>
      <td>Distingue arquivos de origem de arquivos de destino para checagem</td>
    </tr>
    <tr>
      <td>`-l`, `--links`</td>
      <td>Links são copiados como tal, e não como arquivos</td>
    </tr>
    <tr>
      <td>`-p`, `--perms`</td>
      <td>Mantém permissões de arquivos</td>
    </tr>
    <tr>
      <td>`-g`, `--group`</td>
      <td>Mantém permissões de grupos em arquivos</td>
    </tr>
    <tr>
      <td>`-t`, `--times`</td>
      <td>Mantém os carimbos de data e hora dos arquivos (última alteração)</td>
    </tr>
    <tr>
      <td>`-o`, `--owner`</td>
      <td>Mantém a propriedade do arquivo (somente se administrador)</td>
    </tr>
    <tr>
      <td>`-D`, `--devices`</td>
      <td>Mantém dados sobre dispositivos</td>
    </tr>
    <tr>
      <td>`-z`, `--compress`</td>
      <td>Comprime automaticamente os arquivos transferidos</td>
    </tr>
    <tr>
      <td>`--compress-level=NUM`</td>
      <td>Estabelece o grau de compactação; comporta valores (“NUM”) de 0 (descompactado) a 9 (compactação máxima)</td>
    </tr>
    <tr>
      <td>`-v`, `--verbose`</td>
      <td>Adiciona detalhes ao processo de backup</td>
    </tr>
    <tr>
      <td>`-q`, `--quiet`</td>
      <td>Oculta os detalhes do processo de backup (exceto mensagens de erro)</td>
    </tr>
    <tr>
      <td>`-a`, `--archive`</td>
      <td>Modo de arquivo padrão e idêntico à combinação de parâmetros `-rlptgoD`</td>
    </tr>
    <tr>
      <td>`-n`, `--dry-run`</td>
      <td>Executa testes (nenhuma alteração real é feita)</td>
    </tr>
    <tr>
      <td>`-h`, `--help`</td>
      <td>Menu de ajuda; só é aberto quando diretórios de origem e de destino não são especificados, ou outros argumentos</td>
    </tr>
    <tr>
      <td>`--bwlimit=KBPS`</td>
      <td>Limite de largura de banda (kilobytes por segundo); exemplo: `--bwlimit=30\` (limite de 30 kbit/s)</td>
    </tr>
    <tr>
      <td>`--exclude=SAMPLE`</td>
      <td>Exclui um padrão da sincronização; exemplo: `--exclude example-folder\` (A pasta “example folder” não será sincronizada)\\</td>
    </tr>
    <tr>
      <td>`--delete`</td>
      <td>Exclui todos os arquivos do diretório de destino, mas não do diretório de origem</td>
    </tr>
    <tr>
      <td>`--progress`</td>
      <td>Mostra o progresso do rsync backup e a velocidade das transferências</td>
    </tr>
    <tr>
      <td>`--list-only`</td>
      <td>Somente lista arquivos ao invés de copiá-los</td>
    </tr>
    <tr>
      <td>`--stats`</td>
      <td>Oferece relatório detalhado sobre os dados transferidos (quantidade, tamanho, etc.)</td>
    </tr>
    <tr>
      <td>`--max-size=SIZE`</td>
      <td>Estabelece o tamanho máximo de arquivos a serem copiados; por exemplo, `--max-size=10MB` (Somente arquivos de até 10 MB serão transferidos)</td>
    </tr>
    <tr>
      <td>`--ignore-errors`</td>
      <td>Cancela o processo de backup em caso de erro</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/ferramentas/rsync-backup-em-servidor/](https://www.ionos.com/pt-br/digitalguide/servidor/ferramentas/rsync-backup-em-servidor/) for AI/LLM consumption.