Pular para o conteúdo

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.
Fernando R. Durso fernandord
Hits: 40.999 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Parte 3: 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!

   1. Cenário
   2. Script de backup
   3. Script que realiza o backup remoto
Nenhum artigo encontrado.

Reaproveitamento e meio ambiente

MP3 no Linux

Linux na Globo! (Hoje, 05/10)

Criando mirror do AVG 7.5 free

Tema minimalista para Xubuntu 12.04

#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

Entre na sua conta para comentar.