Ative Host
Dicas e tutoriais sobre Hospedagem, Revenda, Linux, VPS, Cloud, Dedicado, Domínio, Certificado SSL, Backup, WebDesign, SEO, Shell, cPanel, DirectAdmin etc...
set 26, 2019 19:27 pm
980 79

O RSYNC é uma ferramenta de código aberto para sincronizar arquivos local e remotamente entre servidores. Não é apenas rápido, mas também inteligente – a ferramenta utiliza um famoso algoritmo para detectar as diferenças entre dois arquivos ou pastas. Isso reduz a quantidade de dados enviados pela rede transferindo apenas as partes dos arquivos que foram alteradas.

Estamos disponibilizando um script para economizamos seu tempo e ajudá-lo a automatizar seus backups. Este script fará backup de seus arquivos e bancos de dados em um servidor remoto. Neste tutorial, mostraremos como personalizar o script para atender às suas necessidades exatas.

Primeiro, precisamos de um servidor de backup, que manterá nossos backups. Em nosso servidor de backup, a única coisa que precisamos instalar é o rsync executando:

Para CentOS / Fedora:

yum -y install rsync

Para Debian / Ubuntu:

 apt -y install rsync 

Agora vamos pular para o servidor de produção e personalizar nosso script de backup.

Nota: Todas as etapas abaixo são executadas como usuário root.

Devemos configurar nossas chaves SSH no servidor principal e copiá-las para o servidor de backup. Se você já possui a configuração das chaves ssh, pule a primeira etapa:

Configurar as chaves ssh

  1. Gerar chave SSH :

    [root@production ~]# ssh-keygen

    Pressione ENTER em cada linha.

    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Created directory ‘/root/.ssh’.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:I6BN/BwVXSOXe/LuCxEIlwVKm4qValVmQtcvND9+Iv4 root@production
    The key’s randomart image is:
    +—[RSA 2048]—-+
    | .o X++==. |
    | . X **+.. |
    | + = +..+.. |
    | + O o . *.. |
    | . = = S o.= |
    | . . .. o.o |
    | . ..+ |
    | . .. |
    | .E.o. |
    +—-[SHA256]—–+
  2. Copie a chave ssh para o servidor de backup :

    [root@production ~]# ssh-copy-id root@IP-OF-OUR-BACKUP-SERVER


    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/root/.ssh/id_rsa.pub”
    The authenticity of host ‘ IP-of-our-backup-server ( IP-of-our-backup-server )’ can’t be established.
    ECDSA key fingerprint is SHA256:Ld0ma1DffczaDp/LbTEeLOZGDSo4BU2c/Hm5hdZpk7A.
    ECDSA key fingerprint is MD5:c3:a4:e8:94:3d:0e:c4:3d:3e:5c:b4:02:4e:23:e4:ff.
    Are you sure you want to continue connecting (yes/no)? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
    root@ IP-of-our-backup-server ‘s password:
    Number of key(s) added: 1
    Now try logging into the machine, with: “ssh ‘root@ IP-of-our-backup-server ‘”
    and check to make sure that only the key(s) you wanted were added.

Como as chaves SSH agora estão criadas, vamos rodar o script como root

[root@production ~]  wget https://servercheap.net/timages/rsync-backup2.sh -O /root/rsync-backup2.sh

Com o script na sua pasta / root, vamos abri-lo com o nosso editor de texto favorito:

[root@production ~]# nano -w /root/rsync-backup2.sh

Existem apenas algumas opções de configuração que precisamos cuidar, então vamos examiná-las uma a uma.

O primeiro conjunto de opções está relacionado ao servidor de backup de destino. As opções são auto-explicativas:

BackupServerIPAddress = '127.0.0.1'  
BackupServerSSHUsername = 'root'
BackupServerSSHPort = '22 '

Vamos substituir 127.0.0.1 pelo endereço IP do nosso servidor de backup. Nosso nome de usuário ssh pode ser inalterado se estivermos usando root, o mesmo que a porta ssd do nosso servidor de backup. Próximas opções:

FoldersToBackup='/var/www/html /usr/share/app/data'  DestinationBackupFolder='/rsync-backup' 

Com  FoldersToBackup  , especificamos as pastas que queremos fazer backup. Para várias pastas, nós as separamos com um espaço. DestinationBackupFolder  é a pasta do nosso servidor de backup em que queremos que os backups sejam copiados.

NOTA: É recomendável que você crie todas as pastas de destino no servidor de backup com antecedência.

É importante não colocar uma barra no final da (s) pasta (s).

Com as próximas 2 opções, especificamos se queremos receber um email após cada execução do script. O email contém informações e estatísticas sobre o backup que acabou de ser executado.

 notifyEmail = 'no'
 emailAddress='s 

As próximas 4 opções especificam o nome de usuário e a senha do servidor mysql / mariadb local, o (s) banco (s) de dados que você deseja fazer backup e a pasta de remoção onde deseja que o backup do banco de dados seja colocado.

dbUserName = 'root' 
dbPassword = ''
dbToBackup = 'wordpress'
dbDestinationFolder = '/ backup /'

Nessas duas últimas opções podem permanecer inalteradas. Na  opção logFile especifica o local do arquivo de log que é enviado por e-mail se  notifyEmail  estiver definido como  yes  . É importante saber que o arquivo de log é apenas temporário e é excluído após cada execução. rsyncOptions  são as opções rsync passadas para rsync. Altere-os por sua conta e risco.

É isso aí. Tudo o que precisamos fazer agora é testar o script executando:

[root@production ~]# chmod +x /root/rsync-backup2.sh
[root @ production ~] # /root/rsync-backup2.sh

Se tudo funcionou, agora você deve ter um novo backup no seu servidor de backup.

NOTA: este script faz um backup incremental. O que isso significa é que o script fará backup apenas dos arquivos que foram alterados desde o último backup. Isso em grandes sistemas de produção pode economizar muito tempo e largura de banda.

O último passo é automatizar isso via CRON. Nós vamos configurá-lo para que nosso script faça um backup automático uma vez por semana (você pode alterar isso para, diário, mensal e etc.), todos os domingos. Abra o cron para edição executando:

[root@production ~]# crontab -e

E coloque no fundo:

0 0 * * 0 /root/rsync-backup2.sh >/dev/null 2>&1

Você está pronto. A partir de agora, o script será executado todos os domingos à meia-noite e fará backup automaticamente de todos os arquivos que foram alterados desde o último backup.





Reply photo

Miss Lucia

April 11, 2018 8.00 pm
Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. enim ad minim

Reply photo

Mr. White

April 11, 2018 8.00 pm
Exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. enim ad minim vniam, quis nostrud exercitation ullamco.

Reply photo

Orlova Ekaterina

April 11, 2018 by Philips
Nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. enim ad minim