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:
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.
Precisa clonar seu disco rígido ou partição Linux? Use uma dessas ferramentas de clonagem de unidade para clonar seu disco Linux.
- Linux
- Backup de dados
- Linux
- Backup na nuvem
- Rede doméstica
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.