Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/ativehos/public_html/wp-includes/functions.php on line 6114

Notice: A função _load_textdomain_just_in_time foi chamada incorrectamente. O carregamento da tradução para o domínio phox foi accionado demasiado cedo. Isto é normalmente um indicador de que algum código no plugin ou tema está a ser executado demasiado cedo. As traduções devem ser carregadas na acção init ou mais tarde. Por favor veja Depuração no WordPress para mais informações. (Esta mensagem foi adicionada na versão 6.7.0.) in /home/ativehos/public_html/wp-includes/functions.php on line 6114
Crie e automatize backups com Rsync com suporte ao banco de dados - Ativehost

Crie e automatize backups com Rsync com suporte ao banco de dados

  • Home
  • Dicas
  • Crie e automatize backups com Rsync com suporte ao banco de dados
Abr 13, 2021

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.

Deixe um comentário