Como usar o rsync para fazer backup de seus dados no Linux

Índice:

Como usar o rsync para fazer backup de seus dados no Linux
Como usar o rsync para fazer backup de seus dados no Linux

Vídeo: Como usar o rsync para fazer backup de seus dados no Linux

Vídeo: Como usar o rsync para fazer backup de seus dados no Linux
Vídeo: Ominous Lectures | Critical Role | Campaign 3, Episode 45 - YouTube 2024, Marcha
Anonim
O rsync é um protocolo criado para sistemas do tipo Unix que oferece versatilidade incrível para backup e sincronização de dados. Ele pode ser usado localmente para fazer backup de arquivos em diretórios diferentes ou pode ser configurado para sincronizar pela Internet com outros hosts.
O rsync é um protocolo criado para sistemas do tipo Unix que oferece versatilidade incrível para backup e sincronização de dados. Ele pode ser usado localmente para fazer backup de arquivos em diretórios diferentes ou pode ser configurado para sincronizar pela Internet com outros hosts.

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”.

 O comando no Red Hat / CentOS, depois de logar como root (note que algumas distribuições recentes do Red Hat suportam o método sudo).
O comando no Red Hat / CentOS, depois de logar como root (note que algumas distribuições recentes do Red Hat suportam o método sudo).
 O comando no Debian / Ubuntu.
O comando no Debian / Ubuntu.

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.

A captura de tela acima nos diz que File1.txt e File2.jpg foram detectados como sendo novos ou alterados das cópias existentes no Directory2 e, portanto, foram armazenados em backup. Dica do Noob: Observe as barras no final dos diretórios do meu comando rsync - são necessárias, lembre-se delas.
A captura de tela acima nos diz que File1.txt e File2.jpg foram detectados como sendo novos ou alterados das cópias existentes no Directory2 e, portanto, foram armazenados em backup. Dica do Noob: Observe as barras no final dos diretórios do meu comando rsync - são necessárias, lembre-se delas.

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/

Como você pode ver na captura de tela acima, a saída dada ao fazer o backup pela rede é praticamente a mesma que ao fazer o backup local, a única coisa que muda é o comando que você usa. Observe também que ele solicitou uma senha.Isso é para autenticar com o SSH. Você pode configurar as chaves RSA para ignorar esse processo, o que também simplificará a automação do rsync.
Como você pode ver na captura de tela acima, a saída dada ao fazer o backup pela rede é praticamente a mesma que ao fazer o backup local, a única coisa que muda é o comando que você usa. Observe também que ele solicitou uma senha.Isso é para autenticar com o SSH. Você pode configurar as chaves RSA para ignorar esse processo, o que também simplificará a automação do rsync.

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/

O comando acima pega os arquivos do Directory1, coloca-os em /ZippedFiles/archive.zip e então rsyncs esse diretório para Directory2. Inicialmente, você pode pensar que esse método seria ineficiente para backups grandes, considerando que o arquivo zip será alterado toda vez que for feita a menor alteração em um arquivo. No entanto, o rsync transfere apenas os dados alterados, portanto, se seu arquivo zip tiver 10 GB e você adicionar um arquivo de texto ao Directory1, o rsync saberá que tudo isso foi adicionado (embora esteja em um zip) e transferirá apenas alguns kilobytes de dados alterados.
O comando acima pega os arquivos do Directory1, coloca-os em /ZippedFiles/archive.zip e então rsyncs esse diretório para Directory2. Inicialmente, você pode pensar que esse método seria ineficiente para backups grandes, considerando que o arquivo zip será alterado toda vez que for feita a menor alteração em um arquivo. No entanto, o rsync transfere apenas os dados alterados, portanto, se seu arquivo zip tiver 10 GB e você adicionar um arquivo de texto ao Directory1, o rsync saberá que tudo isso foi adicionado (embora esteja em um zip) e transferirá apenas alguns kilobytes de dados alterados.

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.

Recomendado: