Como Agendar Backups Automáticos dos Sites no ISPConfig com rSync para o ADrive

Tutorial de como fazer backup para o ADrive usando o rSync, agendando a tarefa para executar automaticamente pelo Cron. Mostrarei o procedimento para fazer cópia dos sites gerenciados pelo ISPConfig 3 no VPS, mas o exemplo pode ser adaptado para qualquer outra situação.

Manter cópia de segurança (backup) dos sites e aplicativos do servidor é uma das tarefas mais importantes para um administrador de sistemas. Quando algo der errado ou o website for infectado por um malware, ou ainda a sua hospedagem foi suspensa por qualquer motivo, você ficará grato por ter uma ou mais cópias do seu trabalho.

Já ensinei anteriormente como fazer backups automáticos pelo WordPress, mas aquele tutorial é somente para o banco de dados e conteúdo do site. Hoje vamos ver como fazer cópia de todos os arquivos do diretório /web, incluindo também os diretórios de usuário fora do /web.

* O ADrive é um serviço de Cloud Storage e Soluções de Backup comercial, ou seja ele é pago e não tem versão gratuita. Porém é muito barato, por $ 2,50 dólares mensais você tem direito a 100Gb de espaço. Quem deu a dica e ajudou a testar o procedimento de backup foi o leitor Marcos Aurelio que já utiliza o ADrive por vários anos.

Backup agendado de sites para o ADrive usando rSync

* Este tutorial foi testado em nosso servidor Debian 7 com ISPConfig 3 e Postfix, clique aqui e veja como instalar.

Configurando o ADrive e o servidor para enviar os backups

A Acesse sua conta no ADrive se ainda não tiver uma conta clique neste link para registrar-se.

B Crie uma pasta no ADrive que será usada para guardar os backups do servidor. Exemplo: vpsbackup

C Acesse o servidor VPS via SSH com o usuário root para criar um par de chave criptografada. Digitando o comando:

ssh-keygen -t rsa -f /root/.ssh/id_adrive

* Quando solicitar a “Passphrase” tecle ENTER duas vezes

D Copie a chave pública para o ADrive: O comando acima criou um par de chaves pública e privada no diretório /root/.ssh.  Copie o conteúdo do arquivo /root/.ssh/id_adrive.pub para o ADrive, colando-o na caixa de texto da chave. Para fazer isso acesse:

Account Settings → Manage Public Keys → Add New Public Key

* Certifique-se de colar a chave sem qualquer espaço no inicio ou no final.

* Isso criará um acesso sem senha entre o servidor e o ADrive para podermos executar o rSync.

2 Configure o backup e o ISPConfig

A Teste o acesso ao ADrive pelo servidor digitando o seguinte comando:

rsync -a -e ‘ssh -i /root/.ssh/id_adrive’ /usr/share/nginx/html/index.html [email protected]@rsync.adrive.com:vpsbackup/

* Substitua [email protected] pelo seu email registrado no ADrive (note que a pasta apontada no comando “vpsbackup” não tem barra no início, muito cuidado para escrever o comando corretamente)

* A primeira vez que tentar executar o comando com uma chave nova, será perguntado se deseja salvar a exceção. Responda “yes“.

Após executar o comando verifique no ADrive se criou um arquivo chamado index.html na pasta vpsbackup.

B Acione a rotina de backup no ISPConfig:

ISPConfig → Sites → <Selecione um site na lista> → aba Backup 

» Intervalo de Backup: Daily (diário)

» Número de Cópias: 7 (número de cópias a manter deste site)

» Exclude Directories: <pode deixar em branco>

Esse procedimento irá acionar a rotina de backup automático para o site no ISPConfig (note que será necessário fazer isso para cada site adicionado ao painel). Diariamente serão criados 2 arquivos compactados no diretório /var/backup. Dentro do diretório a ferramenta cria subdiretórios para cada site separadamente. Um arquivo terá o dump do banco de dados e o outro conterá todo o diretório de arquivos do site, incluindo aqueles fora do diretório /web. Configure para um site e veja no outro dia os arquivos criados, você poderá abri-los e visualizar a estrutura de diretórios.

3 Programe o agendador de tarefas para fazer o rSync automaticamente

A Crie uma tarefa no Cron com o gerenciador de tarefas crontab:

ATENÇÃO: somente execute este último procedimento após testar o comando rSync (passo 2A), e verifique se o nome da pasta no ADrive está correta e criada. Usaremos a opção –delete do rSync que apaga da pasta de destino tudo o que for diferente da pasta de origem, então nunca copie para a raiz do aDrive ou tudo o que estiver lá será perdido.

> crontab -e

Esse comando abrirá o editor do Cron, cole o seguinte conteúdo na última linha em branco (negritei o que deve ser alterado, note que o código abaixo deve ser inserido em linha única caso o seu browser trunque o texto):

30 07 * * * /usr/bin/rsync -a --delete -e 'ssh -i /root/.ssh/id_adrive' /var/backup/ [email protected]@rsync.adrive.com:vpsbackup/

Para sair digite CTRL + X e em seguida Y + ENTER.

Para listar a tarefa agendada digite:

> crontab -l

* Veja um tutorial explicando como usar o crontab neste link.

Explicando a rotina: No ISPConfig acionamos o backup automático dos sites que serão compactados e copiados para o diretório /var/backup diariamente. Em seguida agendamos outra tarefa no Cron para que, usando o rSync, estes arquivos sejam enviados ao ADrive (todos os dias às 07:30hr). Usamos o rSync com a opção –delete que manterá somente os últimos 7 backups no ADrive (lembre-se de configurar a pasta remota corretamente para não ter surpresas)

B Verifique seu backup: Aguarde até o dia seguinte e veja se os arquivos foram copiados para a pasta remota. Não há necessidade de criar uma tarefa no Cron para cada site, pois configuramos o rSync para copiar todas as pastas de sites automaticamente.

NOTAS:

Acionando o backup automático dos sites no ISPConfig você terá uma garantia a mais em caso de crash. O servidor manterá os últimos 7 dias de cópia, sendo que para restaurar é só abrir a aba “Backup” do site e clicar em “Restore Backup“.

Para restaurar um backup que não está no servidor, ou em caso de migrar para outro VPS, é um pouco mais complicado pois você terá que importar o dump do SQL pelo phpMyAdmin e copiar os arquivos via FTP para o servidor novo.

Lembre-se que o backup pode te salvar em muitas situações. Além de programar esta rotina você ainda pode acionar o backup semanal do Droplet pela DigitalOcean e configurar um backup diário com o plugin UpdraftPlus se o site for WordPress.

Gerenciamento de Servidores Cloud com atendimento e consultoria em português. Planos mensais com os melhores preços do mercado.
Envie um email para [email protected] e saiba mais!

  • Sergio

    Tentei fazer o processo. Mas quando cheguei neste comando logado como root, o mesmo não funcionou:
    ssh-keygen -f /root/.ssh/id_adrive -q -P “”

  • Que erro deu?

    Copie e cole aqui..

  • Sergio

    ssh-keygen: option requires an argument — P
    Options:
    -A Generate non-existent host keys for all key types…//