
Ele pode ser usado em sistemas Windows, mas está disponível somente através de várias portas (como o Cygwin), portanto, neste tutorial, vamos falar sobre como configurá-lo no Linux. Primeiro, precisamos instalar / atualizar o cliente rsync. Nas distribuições da Red Hat, o comando é “yum install rsync” e no Debian é “sudo apt-get install rsync”.


Usando o rsync para backups locais
Na primeira parte deste tutorial, faremos backup dos arquivos de Directory1 para Directory2. Ambos os diretórios estão no mesmo disco rígido, mas isso funcionaria exatamente da mesma maneira se os diretórios existissem em duas unidades diferentes. Existem várias maneiras de abordar isso, dependendo do tipo de backup que você deseja configurar. Para a maioria dos propósitos, a seguinte linha de código será suficiente:
$ rsync -av --delete /Directory1/ /Directory2/
O código acima irá sincronizar o conteúdo de Directory1 para Directory2 e não deixará diferenças entre os dois. Se o rsync descobrir que o Directory2 tem um arquivo que o Directory1 não possui, ele será excluído. Se o rsync encontrar um arquivo que foi alterado, criado ou excluído no Directory1, ele refletirá essas mesmas alterações no Directory2.
Há muitos switches diferentes que você pode usar para o rsync personalizá-lo para suas necessidades específicas. Aqui está o que o código acima diz ao rsync para fazer com os backups:
1. -a = recursivo (recursão em diretórios), links (copiar links simbólicos como links simbólicos), perms (preservar permissões), tempos (preservar tempos de modificação), grupo (preservar grupo), proprietário (preservar proprietário), preservar arquivos de dispositivo e preservar arquivos especiais. 2. -v = detalhado. A razão pela qual eu acho o verbose importante é para que você possa ver exatamente o que o rsync está fazendo no backup. Pense sobre isso: E se o seu disco rígido estiver indo mal e começar a excluir arquivos sem o seu conhecimento, você executará o script rsync e enviará essas alterações para os backups, excluindo assim todas as instâncias de um arquivo que você não deseja obter livrar-se de? 3. –delete = Isso diz ao rsync para excluir todos os arquivos que estão no Directory2 que não estão no Directory1. Se você optar por usar essa opção, recomendo também usar as opções detalhadas, pelas razões mencionadas acima.
Usando o script acima, veja a saída gerada usando o rsync para fazer backup do Directory1 para o Directory2. Tenha em atenção que sem o interruptor detalhado, você não receberia essas informações detalhadas.

Iremos mais alguns interruptores mais úteis no final deste tutorial, mas lembre-se de que, para ver uma listagem completa, você pode digitar "man rsync" e visualizar uma lista completa de switches a serem usados.
Isso cobre o que se refere aos backups locais. Como você pode dizer, o rsync é muito fácil de usar. Ele fica um pouco mais complexo ao usá-lo para sincronizar dados com um host externo pela Internet, mas mostraremos uma maneira simples, rápida e segura de fazer isso.
Usando o rsync para backups externos
O rsync pode ser configurado de várias maneiras diferentes para backups externos, mas iremos passar pelo método mais prático (também o mais fácil e mais seguro) de tunelamento do rsync através do SSH. A maioria dos servidores e até mesmo muitos clientes já possuem SSH e podem ser usados para seus backups de rsync. Vamos mostrar-lhe o processo para obter uma máquina Linux para fazer backup para outro em uma rede local. O processo seria exatamente o mesmo se um host estivesse na Internet em algum lugar, apenas observe que a porta 22 (ou qualquer porta na qual você tenha SSH configurado) precisaria ser encaminhada em qualquer equipamento de rede no lado do servidor.
No servidor (o computador que receberá os backups), verifique se o SSH e o rsync estão instalados.
# yum -y install ssh rsync
# sudo apt-get install ssh rsync
Além de instalar o SSH e o rsync no servidor, tudo o que realmente precisa ser feito é configurar os repositórios no servidor onde você deseja que os arquivos sejam salvos no backup e certificar-se de que o SSH esteja bloqueado. Certifique-se de que o usuário que você planeja usar tenha uma senha complexa, e também pode ser uma boa idéia trocar a porta que o SSH escuta (o padrão é 22).
Vamos executar o mesmo comando que fizemos para usar o rsync em um computador local, mas inclua as adições necessárias para o tunelamento do rsync por meio do SSH para um servidor na minha rede local. Para o usuário “geek” conectando-se a “192.168.235.137” e usando os mesmos switches acima (-av –delete), executaremos o seguinte:
$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/
Se você tem o SSH escutando em alguma porta diferente de 22, você precisaria especificar o número da porta, como neste exemplo onde eu uso a porta 12345:
$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Automatizando backups de rsync
O Cron pode ser usado no Linux para automatizar a execução de comandos, como o rsync. Usando o Cron, podemos fazer com que o nosso sistema Linux execute backups noturnos, ou quantas vezes você quiser que eles sejam executados.
Para editar o arquivo da tabela cron para o usuário com o qual você efetuou login, execute:
$ crontab -e
Você precisará estar familiarizado com o vi para editar este arquivo. Digite “I” para inserir e, em seguida, comece a editar o arquivo da tabela cron.
Cron usa a seguinte sintaxe: minuto da hora, hora do dia, dia do mês, mês do ano, dia da semana, comando.
Pode ser um pouco confuso no início, então deixe-me dar um exemplo. O comando a seguir executará o comando rsync todas as noites às 22h:
0 22 * * * rsync -av --delete /Directory1/ /Directory2/
O primeiro "0" especifica o minuto da hora e "22" especifica 10 da noite. Como queremos que esse comando seja executado diariamente, deixaremos o restante dos campos com asteriscos e, em seguida, colamos o comando rsync.
Depois que você terminar de configurar o Cron, pressione escape e digite “: wq” (sem as aspas) e pressione enter. Isso salvará suas alterações no vi.
O Cron pode ser muito mais profundo do que isso, mas continuar com isso estaria além do escopo deste tutorial. A maioria das pessoas quer apenas um backup semanal ou diário simples, e o que mostramos pode ser feito facilmente. Para mais informações sobre o Cron, por favor veja as páginas man.
Outros recursos úteis
Outra coisa útil que você pode fazer é colocar seus backups em um arquivo zip. Você precisará especificar onde deseja que o arquivo zip seja colocado e depois rsync esse diretório para o seu diretório de backup. Por exemplo:
$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Há algumas maneiras diferentes de criptografar seus backups de rsync. O método mais fácil é instalar a criptografia no próprio disco rígido (aquele em que seus arquivos estão sendo armazenados em backup). Outra maneira é criptografar seus arquivos antes de enviá-los para um servidor remoto (ou outro disco rígido, o que quer que você esteja fazendo backup). Cobriremos esses métodos em artigos posteriores.
Quaisquer que sejam as opções e os recursos escolhidos, o rsync prova ser uma das ferramentas de backup mais eficientes e versáteis até hoje, e até mesmo um simples script rsync pode evitar que você perca seus dados.