Backup remoto usando SSH

Neste artigo irei mostrar uma maneira de realizar um backup remoto de arquivos de configuração de servidores, usando shell script e chaves ssh.

[ Hits: 38.783 ]

Por: Fernando R. Durso em 04/02/2008


Script que realiza o backup remoto



Segue o script que realiza o backup remoto e deve ficar na sua estação:

#!/bin/bash
# Script para backup automático dos arquivos de configuração dos clientes

echo "Copia de segurança dos clientes no dia `date +%F`" > backup-`date +%F`.log

if [ $# -lt 1 ];
then
   if [ ! -d "`pwd`/clientes" ]
   then
      mkdir `pwd`/clientes
   fi

   for cliente in `cat clientes.txt | grep -v "#"`;
   do
      if [ ! -d "`pwd`/$cliente" ]
      then
         mkdir `pwd`/$cliente
      fi
      echo "`date +%r` Iniciando copia das configurações de >>>>> $cliente <<<<<"
      echo "`date +%r` Iniciando copia das configurações de $cliente" >> backup-`date +%F`.log
      scp user@$cliente:/home/user/backup.tar.gz `pwd`/$cliente/backup.tar.gz
      if [ $? == 0 ]
      then
          echo "Copia de $cliente bem sucedida" >> backup-`date +%F`.log
      else
          echo "Cópia de $cliente falhou!" >> backup-`date +%F`.log
      fi
   done

else
    
   for cliente;
       do
      if [ ! -d "`pwd`/$cliente" ]
      then
         mkdir `pwd`/$cliente
      fi
      echo "`date +%r` Iniciando copia das configurações de >>>>> $cliente <<<<<"
      echo "`date +%r` Iniciando copia das configurações de $cliente" >> backup-`date +%F`.log
      scp user@$cliente:/home/user/backup.tar.gz `pwd`/$cliente/backup.tar.gz
      if [ $? == 0 ]
      then
          echo "Copia de $cliente bem sucedida" >> backup-`date +%F`.log
      else
          echo "Cópia de $cliente falhou!" >> backup-`date +%F`.log
      fi
   done

fi

Este script é bem simples e tem dois blocos, o primeiro é executado se ele for chamado no shell sem parâmetros nenhum, nesse caso ele olha no arquivo clientes.txt a lista de servidores que você possui e conecta em cada um deles, agora se você entrar com algum parâmetro no shell ele vai tentar conectar no lugar que você digitou... (sendo válido ou não)

Obs:

1. Os arquivos serão copiados para uma sub pasta clientes no diretório aonde você executar o script.

2. No seu arquivo clientes.txt se você não quiser fazer o backup de algum cliente basta comentar com um "#" que o script pula...

3. O script criará automaticamente diretórios aonde serão guardados os arquivos backup.tar.gz de cada cliente, então por exemplo se você tiver 2 clientes um sendo gw.cliente1.com.br e o outro 222.333.444.555 serão criados 2 diretórios com esses nomes e dentro deles estará um arquivo backup.tar.gz respectivo a cada cliente.

Conclusão

Esta é uma solução extremamente simples e rápida que me atende muito bem, atualmente faço mais de 40 backups dessa forma e em caso de perda de um servidor isso acelera muito a recuperação do sistema.

Espero que seja útil!

Página anterior    

Páginas do artigo
   1. Cenário
   2. Script de backup
   3. Script que realiza o backup remoto
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Usando o NIS/NFS como ferramentas de centralização de controle de rede

Integração MRTG e RRDTool

Instalação do Cacti baseado em uma distribuição própria - CactiEZ

Programando um mundo livre

Certificado Digital para Peticionamento Eletrônico (2018)

  
Comentários
[1] Comentário enviado por AndreFranca em 05/02/2008 - 23:29h

Vou testar em meus clientes....
Já foi "pros" favoritos!!!!
valeu!!!

[2] Comentário enviado por removido em 17/02/2008 - 13:32h

ola vc pode me dar mais detalhes de como faço esse backup, é que sou iniciante. Detalhes como: eu quero copiar os diretorios que estão no /dados; /publico; /sistema; como fazer?

valeu

[3] Comentário enviado por fernandord em 18/02/2008 - 00:27h

no script de backup é só colocar os diretórios com os caminhos absolutos em "ELEMENTOS"

t+

[4] Comentário enviado por jucaetico em 07/07/2008 - 14:40h

Show, valeu!

[5] Comentário enviado por helioalb em 16/07/2008 - 10:52h

Fernando, muito bom o seu artigo, já está nos meus favoritos.
Parabéns!!!!

[6] Comentário enviado por psdrop em 27/08/2008 - 11:43h

Parabéns,

Estava precisando muito....

Obrigado

[7] Comentário enviado por tiago_s em 10/11/2008 - 18:17h

Depois de criar as chaves publibas eu digito o comand #ssh-add e ele me retorna o seguinte erro: Could not open a connection to your authentication agent.

Voce sabe o que pode estar ocorrendo?

[8] Comentário enviado por eilton em 07/05/2013 - 15:26h

Fernando boa tarde,

eu tenho um servidor na empresa que trabalho, tenho o Ubuntu 12 instalado nos terminais, e o Debian instalado no servidor, já criei os usuários e suas pastas, gostaria se possivel, como devo utilizar o script que vc criou, para que eu possa fazer os backups neste servidor, sou iniciante e gostaria de um passo-a-passo para que eu não me perca.

Desde já agradeço pela sua atenção.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts