# Criar cópias de segurança do servidor com o rsync

Os backups devem desempenhar sempre um papel fundamental no seu planeamento relativo aos servidores. A **ferramenta ou o protocolo de sincronização gratuito [rsync](https://www.ionos.com/pt-pt/digitalguide/servidores/ferramentas/rsync/)** permite-lhe configurar e realizar backups individuais de forma rápida.

## Configurar cópias de segurança rsync em servidores Linux: veja como fazer

Para utilizar o rsync em sistemas operativos Linux, deve instalar o protocolo através do pacote com o mesmo nome e criar as suas cópias de segurança **através de comandos no terminal**. A seguir, explicamos os passos mais importantes para configurar um processo de cópia de segurança com o rsync, utilizando um exemplo no Ubuntu.

Normalmente, o rsync já vem instalado por predefinição no Ubuntu. Caso contrário, utilize este comando para o instalar:

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

Depois de instalar o rsync, utilize os comandos de terminal desejados para definir **os diretórios de origem e de destino**, bem como as opções de cópia de segurança. Como caminho de origem e de destino, deve especificar, respetivamente, o **diretório de origem** e o diretório onde o rsync irá **armazenar a cópia de segurança**. O modo padrão («Archive») é executado da seguinte forma:

```bash
rsync -a directorio_de_origen directorio_de_destino
```

Dica Utilize a execução de teste `-n` para verificar se os parâmetros e diretórios indicados estão corretos; na pior das hipóteses, indicações erradas podem provocar uma perda de dados. Por vezes, nem todos os ficheiros são copiados, o que se deve frequentemente à falta dos direitos de acesso necessários. Neste caso, tente executar o comando precedido do `sudo` como administrador.

## Backup com rsync: cinco cenários de utilização

Se dominar os comandos básicos, o rsync revelar-se-á uma ferramenta muito eficaz **para copiar ficheiros** e **criar cópias de segurança**. Neste contexto, pode experimentar **configurações individuais de comandos** ou recorrer às **combinações estabelecidas** dos parâmetros rsync disponíveis. Nas secções seguintes, resumimos cinco cenários de utilização comuns para as cópias de segurança com o rsync.

### Cópia de segurança padrão no modo de arquivo

Por predefinição, o **modo de arquivo** copia todos os ficheiros do diretório de origem para o diretório de destino, incluindo todas as subpastas. Todos os direitos, marcas de tempo e dados do dispositivo são mantidos. Esta é geralmente a solução mais simples e adequada, graças à combinação de várias opções num único parâmetro. Se, além disso, combinar este modo com o parâmetro `-v`, receberá também **informações detalhadas sobre o estado** durante o processo de cópia de segurança.

```bash
rsync -av directorio_de_origen directorio_de_destino
```

Como caminho de origem e destino, deve especificar-se, respetivamente, o **diretório de origem** e o **diretório** onde o rsync irá **armazenar a cópia de segurança**.

### Cópias idênticas do diretório de origem

O programa rsync não serve apenas para transferir ficheiros de A para B, mas também permite criar **cópias idênticas** de pastas e diretórios completos. Após a cópia padrão, são eliminados todos os ficheiros que se encontravam na pasta de destino antes da execução da cópia de segurança rsync, mas que não estão na pasta de origem.

```bash
rsync -av --delete directorio_de_origen directorio_de_destino
```

### Backup com o rsync sem ficheiros de um determinado formato

Se quiser fazer uma cópia de segurança com o rsync que exclua ficheiros com um determinado formato, pode fazê-lo com `--exclude`. Este parâmetro permite-lhe **definir um padrão de caracteres específico**, que o rsync utilizará como indicador para ignorar um ficheiro. O código de exemplo a seguir destina-se ao formato de ficheiro de texto .txt:

```bash
rsync -av --exclude'*.txt' directorio_de_origen directorio_de_destino
```

### Cópia de segurança de ficheiros com tamanho máximo ou mínimo

Se não quiser utilizar um determinado padrão de caracteres, mas sim **o tamanho do ficheiro**, como critério **para ignorar determinados ficheiros** no processo de backup do rsync, deve utilizar os parâmetros `--max-size` ou `--min-size`. Com o comando seguinte, serão copiados apenas os ficheiros com um tamanho mínimo de 10 MB e um tamanho máximo de 100 MB:

```bash
rsync -av --min-size=10MB --max-size=100MB directorio_de_origen directorio_de_destino
```

### Backups rsync com conversão do formato de caracteres

É possível que, no diretório de destino, precises dos dados noutro **formato de caracteres**, por exemplo, se pretenderes enviar dados de um servidor Mac para um servidor Linux. O dispositivo da Apple utiliza por predefinição o UTF8-MAC, que não está disponível no sistema Linux e que causaria problemas com **caracteres especiais** e **acentos**. Através da opção `--iconv`, pode adaptar facilmente a **codificação dos caracteres** (no nosso exemplo, de UTF8-MAC para UTF8):

```bash
rsync -av --iconv=UTF8-MAC,UTF8 directorio_de_origen directorio_de_destino
```

## Visão geral das opções mais importantes do rsync backup

Podes personalizar as configurações das tuas cópias de segurança rsync através de **opções**, que podes abreviar com uma letra ou escrever por extenso. A tabela que te apresentamos a seguir resume os **parâmetros** mais importantes, que podem ser combinados sempre que necessário:

<table>
  <thead>
    <tr>
      <th>Opção</th>
      <th>Função</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`-r`, `--recursive`</td>
      <td>O backup rsync terá em conta todas as subpastas incluídas</td>
    </tr>
    <tr>
      <td>`-u`, `--update`</td>
      <td>Instrução para não considerar os ficheiros que são mais recentes no diretório de destino do que no diretório de origem</td>
    </tr>
    <tr>
      <td>`-c`, `--checksum`</td>
      <td>Distinção entre ficheiros de origem e de destino através de somas de verificação</td>
    </tr>
    <tr>
      <td>`-l`, `--links`</td>
      <td>Os atalhos simbólicos são copiados como tal (e não como ficheiros)</td>
    </tr>
    <tr>
      <td>`-p`, `--perms`</td>
      <td>As permissões dos ficheiros são mantidas</td>
    </tr>
    <tr>
      <td>`-g`, `--group`</td>
      <td>As permissões de grupo dos ficheiros são mantidas</td>
    </tr>
    <tr>
      <td>`-t`, `--times`</td>
      <td>As marcas temporais (última modificação) dos ficheiros são mantidas</td>
    </tr>
    <tr>
      <td>`-o`, `--owner`</td>
      <td>O proprietário dos ficheiros é mantido (apenas se for administrador)</td>
    </tr>
    <tr>
      <td>`-D`, `--devices`</td>
      <td>Os dados do dispositivo são mantidos</td>
    </tr>
    <tr>
      <td>`-z`, `--compress`</td>
      <td>Compressão automática dos dados transmitidos</td>
    </tr>
    <tr>
      <td>`--compress-level=NUM`</td>
      <td>Determinação do grau de compressão; é permitido um valor (“NUM”) entre 0 (sem compressão) e 9 (compressão máxima)</td>
    </tr>
    <tr>
      <td>`-v`, `--verbose`</td>
      <td>Informações detalhadas durante o processo de cópia de segurança</td>
    </tr>
    <tr>
      <td>`-q`, `--quiet`</td>
      <td>Todas as informações relativas ao processo de cópia de segurança são ocultadas (com exceção das mensagens de erro)</td>
    </tr>
    <tr>
      <td>`-a`, `--archive`</td>
      <td>Modo de arquivo utilizado como padrão e que é idêntico à combinação de opções `-rlptgoD`</td>
    </tr>
    <tr>
      <td>`-n`, `--dry-run`</td>
      <td>Execução de teste em que não são feitas alterações reais</td>
    </tr>
    <tr>
      <td>`-h`, `--help`</td>
      <td>Menu de ajuda (só pode ser utilizado sem indicação dos diretórios de origem e de destino ou de outros argumentos)</td>
    </tr>
    <tr>
      <td>`--bwlimit=KBPS`</td>
      <td>Limitação da largura de banda (kilobytes por segundo), por exemplo, `--bwlimit=30` (limite de 30 kbit/s)</td>
    </tr>
    <tr>
      <td>`--exclude=MUSTER`</td>
      <td>Exclusão de um padrão da sincronização, por exemplo, `--exclude carpeta de ejemplo` (a pasta “Pasta de exemplo” não será sincronizada.)</td>
    </tr>
    <tr>
      <td>`--delete`</td>
      <td>Eliminação de todos os ficheiros que se encontram no diretório de destino, mas que não estão no diretório de origem</td>
    </tr>
    <tr>
      <td>`--progress`</td>
      <td>Indicação da duração do backup rsync e da velocidade de transmissão</td>
    </tr>
    <tr>
      <td>`--list-only`</td>
      <td>Enumeração dos ficheiros em vez de efetuar uma cópia de segurança</td>
    </tr>
    <tr>
      <td>`--stats`</td>
      <td>Relatório detalhado sobre os dados transferidos (quantidade, tamanho)</td>
    </tr>
    <tr>
      <td>`--max-size=SIZE`</td>
      <td>Definição de um tamanho máximo de ficheiro, por exemplo, `--max-size=10MB` (só serão transferidos ficheiros com um tamanho até 10 MB.)</td>
    </tr>
    <tr>
      <td>`--ignore-errors`</td>
      <td>Evita a interrupção do processo de cópia de segurança em caso de erro</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/ferramentas/como-criar-copias-de-seguranca-do-servidor-com-o-rsync/](https://www.ionos.com/pt-pt/digitalguide/servidores/ferramentas/como-criar-copias-de-seguranca-do-servidor-com-o-rsync/) for AI/LLM consumption.