Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Slackware 12.1
Por neutronbg
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Thiago Diniz da Silveira em 07/07/2009    [ 3344 hits ]

Login: thiagods.ti, 7435 pontos

   


Descrição

Apenas mais um script de backup, cada comando está bem explicado, será bom para o aprendizado.

[ Download: bkpScript.sh ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

#!/bin/bash

#==================================#
#                 Script para realizar backup                     #
#==================================#

# IMPORTANTE:
# Para o funcionamento deste script é necessário gerar uma chave do ssh
# e enviar a chave pub para o servidor destino.
# Isso é necessário para os comandos scp e ssh poderem ser emitidos
# sem uma requisição de senha.
# para realizar isso pode ser utilizado esses dois comandos (tem que executar
# os comandos com o usuário que for executar o script):
# O primeiro serve para gerar a chave rsa:
# 1 - $ ssh-keygen -t rsa
# O segundo envia a chave rsa para o servidor destino
# 2 - $ ssh-copy-id -i ~/.ssh/id_rsa.pub login@servidor
# Comandos tirado do site http://www.guiadohardware.net/tutoriais/dominando-ssh/pagina5.html
# se quiser conhecer um pouco mais sobre ssh recomendo.


# Configuração do servidor 1 (origem)
# Diretório onde ficara o backup temporariamente
DIR_ORIG="/tmp/"
# Diretório dos arquivos a receberem backups separados por espaço
# podem ter quantos quiser
BKP=("/home/$USER/" "/home/FTP/")

# Configuração do servidor 2 (destino)
# IP ou Name do servidor que receberá o backup
HOST="192.168.1.2"
# Usuário a ser utilizado no envio dos backups
USUARIO="root"
# Diretório onde irá ser enviado os backups
DIR_DEST="/tmp/"


# Configurações gerais
# Nome do arquivo compactado
ARQ="bkp.tgz"

# Criar Log? (default = 1)
# 1 = sim, 0 = não
LOG="1"
if [ $LOG -eq 1 ]; then
        # Nome do arquivo de log e diretório a ser gravado
        ARQ_LOG="${DIR_ORIG}logBKP"
fi
# Descompactar arquivo no servidor a ser enviado? (default = 1)
# 1 = sim, 0 = não
DESC_BKP="0"
if [ $DESC_BKP -eq "1" ]; then
        # Diretório onde irá ser descompactado os backups
        # OBS: quando descompactar o backup, o diretório de cada arquivo
        # é recriado, ou seja, se DIR_UNZIP for /backup e você fez backup do
        # /home/$USER/ criará um diretório chamado /backup/home/$USER
        # dentro do servidor destino. (se tiver permissão claro)
        DIR_UNZIP="/"
fi

# Inicio do script

if [ $LOG -eq 1 ]; then

        echo "Backup Execução - $(date +%d/%m/%Y)" >> $ARQ_LOG
        echo "Horaario da Inicialização do Backup - $(date +%k:%M:%S)" >> $ARQ_LOG
        echo >> $ARQ_LOG
        echo "Compactando arquivos" >> $ARQ_LOG

        # Nesta parte a variável bkp recebera todos os valores dentro do array BKP
        # e serão adicionados a váriavel tmp
        for bkp in ${BKP[@]}; do
                tmp="$tmp $bkp";
        done

        # Compacta os arquivos e diretórios mantendo as permissões
        tar -czpvf ${DIR_ORIG}${ARQ} ${tmp} >> $ARQ_LOG

        echo >> $ARQ_LOG

        echo "Transferindo arquivo para o servidor: ${HOST}" >> $ARQ_LOG;

        echo "Utilizando o user: ${USER}" >> $ARQ_LOG;
        echo "Para o diretório: ${DIR_DEST}" >> $ARQ_LOG;


        # Transfere o backup para o servidor destino
        scp ${DIR_ORIG}${ARQ} $thiagods.ti@${HOST}:${DIR_DEST} >> $ARQ_LOG;

        echo >> $ARQ_LOG;

        if [ $DESC_BKP -eq 1 ]; then
                echo "Descompactando arquivo no servidor" >> $ARQ_LOG;
                # Descompacta o backup no servidor destino
                ssh $thiagods.ti@${HOST} tar -xzpvf ${DIR_DEST}${ARQ} -C ${DIR_UNZIP} >> $ARQ_LOG;
                echo >> $ARQ_LOG;
        fi

        echo "Horário da Finalização do Backup - $(date +%k:%M:%S)" >> $ARQ_LOG


        echo "=======================================================================" >> $ARQ_LOG
        echo >> $ARQ_LOG

# Caso não queira log, porém não é recomendável
else
        for bkp in ${BKP[@]}; do
                tmp="$tmp $bkp";
        done
        tar -czpvf ${DIR_ORIG}${ARQ} ${tmp}
        scp ${DIR_ORIG}${ARQ} $thiagods.ti@${HOST}:${DIR_DEST}
        ssh $thiagods.ti@${HOST} tar -xzpvf ${DIR_DEST}${ARQ} -C ${DIR_UNZIP}
fi

Scripts recomendados
   Script Linux recomendado dcalc: Calculadora Com Conversão de Bases
   Script Linux recomendado Script que recebe parametros e gera um arquivo
   Script Linux recomendado Gravar uma imagem ISO em um CD-RW
   Script Linux recomendado createThumbs
   Script Linux recomendado purge

Comentários
[1] Comentário enviado por thiagods.ti em 18/05/2012 - 00:17h:

Aonde está escrito thiagods.ti foi alterado automáticamente pelo site porque usei ${USER} então para uqe o script fique correto utilizem ${USER} ao invés de thiagods.ti


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.