Já se preocupou em perder seus dados ou se cansou de fazer backups manuais diários ou semanais? Use o rsync e sincronize automaticamente seus arquivos locais com um servidor remoto com a freqüência desejada, sem intervenção manual. Observe que este guia requer acesso a um servidor Linux remoto (por exemplo, AWS), e é escrito no Ubuntu 20.04, embora qualquer distribuição Linux deva funcionar bem.

Instale o rsync

Antes de qualquer coisa, verifique se ou não rsync está instalado. Em seu PC local e servidor web, execute este comando:

rsync --version

Se você obtiver a versão rsync atual em troca, está tudo pronto para a próxima seção. Caso contrário, se você receber um comando não encontrado erro, você pode instalar rsync com este comando:

sudo apt-get -y install rsync

Gerar chave SSH

Vamos usar um Chave SSH para autenticar a conexão entre nosso PC local e o servidor remoto. Para gerar uma nova chave SSH em seu PC local dentro do terminal, execute o comando:

Como configurar o SSH no Linux e testar sua configuração: um guia para iniciantes
instagram viewer

Precisa acessar seu computador ou servidor Linux remotamente? Veja como instalar e configurar o SSH no Linux, Windows e móvel.

ssh-keygen -t rsa -b 4096 -f ~ / .ssh / rsync.key

Quando for solicitada uma senha, deixe em branco e pressione a tecla Enter duas vezes. Isso irá gerar dois novos arquivos em seu ~ / .ssh / diretório chamado rsync.key que é a chave privada, e rsync.key.pub, a chave pública.

Configurar servidor remoto

Embora não seja obrigatório, para este guia, criaremos um novo usuário no servidor remoto para conexões rsync e para armazenar todos os arquivos de backup. Faça login no servidor remoto via SSH e execute este comando:

sudo useradd -m rsync

O exemplo acima usa o nome de usuário rsync, mas você pode alterá-lo para o que desejar. o -m opção simplesmente diz ao Linux para criar um diretório inicial para o nosso novo usuário.

Para permitir a autenticação do seu PC local, a chave SSH pública gerada na seção anterior precisa ser copiada para o servidor remoto. Abra o /~.ssh/rsync.key.pub arquivo em um editor de texto e você verá uma grande linha semelhante a.

ssh-rsa usuário @ host

Essa longa linha é a chave SSH pública. Copie-o para a área de transferência e execute estes comandos no servidor remoto:

sudo su rsync
mkdir -m 0700 $ HOME / .ssh
echo "ssh-rsa AAAAB... usuário @ host "> $ HOME / .ssh / authorized_keys
chmod 0644 $ HOME / .ssh / authorized_keys

No penúltimo comando, substitua o texto entre aspas por aquela longa linha de chave SSH pública. É isso, seu PC local agora será capaz de autenticar com seu servidor remoto.

Configurar arquivo de configuração ssh

Para simplificar, adicione uma entrada ao ~ / .ssh / config arquivo em seu PC local para se conectar facilmente ao servidor remoto. Abra o arquivo em seu PC local com o comando.

nano $ HOME / .ssh / config

No arquivo, adicione uma entrada para o servidor remoto, como:

host backup_server
 hostname 192.168.0.24
 usuário rsync
 IdentityFile ~ / .ssh / rsync

Altere o nome do host para o endereço IP do seu servidor remoto e, se você usou um nome de usuário diferente de "rsync", altere-o também. Você pode usar qualquer coisa que desejar para o host, mas para este exemplo, "backup_server" foi usado. Salve e feche o arquivo pressionando Ctrl + X seguido das teclas "Y" e Enter.

Teste sua conexão SSH com o servidor remoto com o comando.

ssh backup_server

Assumindo que tudo está configurado corretamente, você deve agora estar conectado ao servidor remoto via SSH. Feche a conexão com o comando.

saída

Sincronize seus arquivos

Agora teste o rsync funcionalidade e, por exemplo, para sincronizar o diretório Documentos em seu PC local, execute o comando:

rsync -avz --progress ~ / Documents / backup_server: ~ / Documents

A primeira ocorrência de ~ / Documentos / especifica o arquivo local ou diretório para sincronizar, backup_server corresponde à entrada adicionada ao ~ / .ssh / config arquivo, e o final : ~ / Documentos simplesmente especifica o upload de tudo para o diretório / Documents do servidor remoto relativo ao diretório inicial.

Faça login no servidor remoto e você verá um novo diretório Documentos que está sincronizado com o de seu PC local. Cada vez que você executa o comando acima, apenas os arquivos que foram modificados desde a última vez serão carregados, então você não está constantemente carregando todo o conteúdo do diretório.

Automatizar via Crontab

Agora que tudo está testado e funcionando corretamente, podemos automatizar facilmente todo o processo adicionando um trabalho crontab ao nosso PC local. Para sincronizar automaticamente sua pasta local com o servidor remoto a cada 15 minutos, execute o comando no terminal.

(crontab -l; echo "* / 15 * * * * rsync -avz --progress ~ / Documents / backup_server: ~ / Documents> / dev / null 2> & 1";) | crontab

Você pode receber uma mensagem "sem crontab para o usuário" e pode simplesmente ignorá-la. Mudar o Documentos para o que deseja fazer o backup, mas certifique-se de deixar uma barra final para os diretórios, caso contrário, eles não farão o backup corretamente.

Verifique se o trabalho crontab foi adicionado com sucesso com o comando.

crontab -l

Se você vir o trabalho do crontab que acabou de adicionar, tudo estará correto. Aguarde 15 minutos, verifique seu servidor remoto e todos os arquivos necessários devem estar lá. A partir de agora, todas as alterações feitas em seus arquivos serão carregadas automaticamente no servidor remoto a cada 15 minutos.

Baixar do servidor remoto

Você também pode usar rsync para baixar arquivos do servidor remoto e sincronizá-los com o PC local. Usando o exemplo de diretório / Documents acima, dentro do terminal execute o comando:

rsync -chavzP backup_server: ~ / Documentos / ~ / Documentos

o ~. / Documentos O diretório em seu PC local agora deve ser uma imagem espelhada do servidor remoto.

Incluir e excluir padrões

Se você precisar sincronizar apenas os arquivos que correspondem a um determinado padrão, como terminar com .html você pode usar o --incluir padronizar. No terminal, execute o comando.

rsync -avz --include "* .html" --progress ~ / mysite / backup_server: ~ / public_html

Verifique o servidor remoto e você verá que apenas os arquivos com extensão .html do diretório local / mysite / foram carregados no diretório / public_html / remote. Da mesma forma, você também pode sincronizar tudo, exceto alguns arquivos com o --excluir opção. Por exemplo, o comando a seguir sincronizará todos os arquivos, exceto aqueles com um .TXT extensão.

rsync -avz --exclude "* .txt" --progress ~ / mysite / backup_server: ~ / public_html

Sincronizar dois diretórios locais

Se necessário, você também pode sincronizar dois diretórios locais com o comando.

rsync -zvr ~ / source / diretório ~ / destino / diretório

Este comando funciona exatamente da mesma forma que ao sincronizar com um servidor remoto, com a única diferença de que são dois diretórios locais.

Descanse com calma

Agora você pode dar um suspiro de alívio sabendo que suas chances de perda de dados são substancialmente menores. Neste artigo você aprendeu o que rsync é, como gerar e instalar uma chave SSH, definir um servidor dentro do ~ ./. ssh / config, sincronize um diretório local e remoto e automatize todo o processo via crontab. A partir de agora, todos os arquivos necessários serão sempre sincronizados com o servidor remoto com apenas 15 minutos de atraso.

O email
Como clonar seu disco rígido Linux: 4 métodos

Precisa clonar seu disco rígido ou partição Linux? Use uma dessas ferramentas de clonagem de unidade para clonar seu disco Linux.

Tópicos relacionados
  • Linux
  • Backup de dados
  • Linux
  • Backup na nuvem
  • Rede doméstica
Sobre o autor
Matt Dizak (13 artigos publicados)Mais de Matt Dizak

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme seu endereço de e-mail no e-mail que acabamos de enviar.

.