Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Backup's remotos com tar, bzip2 e ssh com autenticação por chaves públicas.

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 14 de Dezembro de 2004

A maioria dos administradores de redes precisam utilizar alguma ferramenta de backup. No meu caso eu utilizo o comando tar para concatenar, juntamente com o bzip2 para compactar os arquivos e o ssh para fazer a transferência dos mesmos remotamente.

Este trio pode ser utilizado de várias formas, mas prefiro utilizar todos em uma linha única de comando.

*Apesar da facilidade tem que se levar em consideração que a autenticação por chaves assimétricas esteja configurada (sem utilização de senha) e funcionando no servidor que irá receber os backups.*

O macete é o seguinte: O comando tar tem uma opção que vc. pode utilizar para especificar um shell remoto para ele ( --rsh-command ), com isto ao invés de utilizarmos um shell inseguro como o rsh, usamos o ssh.

Vamos lá então:

Para compactar e enviar o arquivo para uma máquina remota:

  tar cjvf usuario@servidor.com.ssh:local_onde_guardara_o_backup.tar.bz2 /home --rsh-command=/usr/bin/ssh

pode-se aprimorar ainda mais isso, utilizando a opção —include-files e --exclude-files do tar, para um backup mais enxuto, digamos assim.

Veja um script de exemplo:

  #!/bin/bash
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>#
  # Script bkp.sh                                                             #
  # Forma de execução:                                                        #
  #       $PATH/bkp.sh [USER] [HOST] [INCLUDE-FILE] [ABSOLUTE PATH SSH] & 2>&-#
  #                                                                           #
  # Breve descrição:                                                          #
  # Este script efetua o backup dos diretórios existentes no arquivo          #
  # [INCLUDE-FILE] para a o usuário e máquina especificado em [USER]          #
  # e [HOST] respectivamente.                                                 #
  # Aceita-se ainda o parâmetro [ABSOLUTE PATH SSH]. Caso ele não seja especi-#
  # ficado assume-se que o arquivo seja "usr/bin/ssh"                         #
  #                                                                           #
  # OBS: Este script usa autenticação por chaves públicas SSH sem senha       #
  #                                                                           #
  # by Edson Flávio de Souza edson.flavio@ufpr.br                             #
  # versão 1.0                                                                #
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>#
  
  #set -x
  
  ###Usuário remoto que será usado para receber o backup
  USER=${1-usuario}
  
  ###Host remoto que será usado para receber o backup
  HOST=${2-host}
  
  ###Nome do arquivo remoto que será gerado o backup
  FILENAME=backup.$HOST.$(date +%d%m%Y).bkp
  
  ###Nome do arquivo onde fica a relação de diretórios a serem "backupeados"
  INCLUDE=${3:-include.txt}
  
  ###Local onde fica o binário do ssh
  SSH=${4:-/usr/bin/ssh}
  
  ###Local onde fica o binário do tar
  TAR=/bin/tar
  
  ###Parâmetros a serem usados para compactação com o tar (o "c" e o "f" são essenciais)
  ###Aqui estou usando o bzip opção "j"
  TARPARM=cjf
  
  ###Endereço para onde deve ser enviado e-mail's com erro
  EMAIL=root@localhot
  
  ### Efetuando o Backup
  
  $TAR $TARPARM $USER@$HOST:$FILENAME --rsh-command=$SSH -T $INCLUDE 2>&-
  
  if [ $? -ne 0 ]; then
  {
     mail -s "Erro no Backup da máquina $HOST em $(date +%d/%m/%Y)" $EMAIL
     exit 1
  }; fi
  
  ### Removendo arquivos de backups antigos
  
  $SSH $USER@$HOST '(cd ~/backups/; DATA=``date --date="15 days ago" +%d%m%Y``; rm *.$DATA.bkp)';
  
  
  if [ $? -ne 0 ]; then
  {
     mail -s "Erro remoção arq. ant. host $HOST em $(date +%d/%m/%Y)" $EMAIL
     exit 1
  }; fi

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1127 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis