Backup, gerando no final uma imagem .iso dos arquivos !!

Publicado por Fábio Flores 26/02/2007

[ Hits: 7.084 ]

Download backupdados.sh




Depois de tantas perdas que sofri na vida, de dados é claro :) resolvi fazer um script para "backapear" os dados do meu notebook. Este script funciona tanto em notebook quanto desktop, basta ter o cdrtools instalado!

Quando executar o script, deve passar por parâmetro os arquivos e diretórios que vc deseja fazer o backup. Ao final ele gera um arquivo .iso para ser gravado em uma mídia, e todas as operações são registradas em um arquivo de log que fica em ~/logs_backup.

Valeu! Fábio "cyberwolf" Flores

  



Esconder código-fonte

#!/bin/bash
#
# Uso: backupdados <diretorio1> <diretorio2>...<arquivo4>
#
# Programa para fazer backup automatizado de arquivos e diretórios que são passados
# por parâmetros, gerando no final um arquivo .iso para ser gravado em uma mídia.
# Caso o programa não consiga gerar o arquivo imagem então os dados ficam copiados
# em /tmp/bckp_dadosddmmaaa/, todas as operações são registradas em um arquivo
# de log que fica no diretório ~/logs_backup que é criado automaticamente.
# Uso este programa(script) no meu notebook, para fazer backup dos arquivos mais importante
# depois gravo um dvd com a imagem(.iso) criada.
# Coloquei bastante controle de erros (modúlos anti-bocó :) ) no caso de alguns deslizes
# que eu mesmo cometo.
# Valeu!!
# Abraços
# Fábio "Cyberwolf" Flores
#
#
# Verifica se foi passado parâmetros no programa
# ----------------------------------------------
if [ $# -le 0 ]
then
        echo "Erro -> Uso: backupdados <diretorio1> <diretorio2>...<arquivo4>"
        exit 1
fi
# Controle da "existência" do aplicativo mkisofs para gerar a imagem
# -------------------------------------------------------------------
if [ -f /usr/bin/mkisofs ]
then
        controle=1
else
        echo -e "Erro -> A imagem não sera gerada:\no aplicativo mkisofs não foi localizado ou\nnão esta instalado ou\nvocê não tem permisão para executar"
        controle=2
fi
# Verifica se os dados que serão "backupeados" existem e se o
# usuário tem permisão de leitura dos mesmos
# ----------------------------------------------------------
i=1
erro=0
while [ $i -le "$#" ]
do
        if [ ! -r `echo $* | cut -f$i -d" "` ]
        then
                erro=1
                break
        fi
        i=`expr $i + 1`
done
if [ $erro -eq 1 ]
then
        echo -e "Erro -> Uso: Um ou mais dados são inexistentes ou\nestão indisponíveis para leitura..."
        exit 1
fi
# A primeira vez que é rodado o backup cria o diretório,
# e a estrutura de logs no diretório do usuário
# ------------------------------------------------------
if [ ! -d ~/logs_backup ]
then
        mkdir ~/logs_backup
        echo "Diretorio logs_backup criado..."
fi
echo -e "###################################\n# LOG DO BACKUP DO DIA `date +%d/%m/%Y` #\n###################################" >> ~/logs_backup/backup_dados`date +%d%m%Y`.txt
# Cria o diretório temporário para cópia do backup
# ------------------------------------------------
mkdir /tmp/bckp_dados`date +%d%m%Y` 2> /dev/null
# Copia todos os arquivos e diretórios para /tmp/bckp_dadosddmmaaa/ e gera 
# o log das cópias em ~/logs_backup
# -------------------------------------------------------------------------
echo "Copiando os dados para backup..."
cp $@ /tmp/bckp_dados`date +%d%m%Y` -Rfv >> ~/logs_backup/backup_dados`date +%d%m%Y`.txt 2> /dev/null
# Verifica a possibilidade de gerar a imagem
# ------------------------------------------
if [ $controle -eq 1 ]
then
        # Gera o arquivo .iso para gravação em mídia
        # ------------------------------------------
        echo -e "################################################\n# GERANDO A IMAGEM .iso PARA GRAVAÇÃO EM MÍDIA #\n################################################" >> ~/logs_backup/backup_dados`date +%d%m%Y`.txt
        echo "Gerando a imagem..."
        mkisofs -r -o bckp_dados`date +%d%m%Y`.iso -J -V"bckp_dados`date +%d%m%Y`" /tmp/bckp_dados`date +%d%m%Y` 2>> ~/logs_backup/backup_dados`date +%d%m%Y`.txt
        echo -e "#################\n# Fim do Backup #\n#################" >> ~/logs_backup/backup_dados`date +%d%m%Y`.txt
        # Verifica se a imagem foi gerada corretamente
        # --------------------------------------------
        if [ -f bckp_dados`date +%d%m%Y`.iso ]
        then
                echo "Arquivo imagem gerado com sucesso..."
        else
                echo "Erro: Ocorreu um erro na hora de tentar gerar a imagem"
                exit 3
        fi
        # Se conseguiu gerar a imagem exclui o diretório /tmp/bck_dadosddmmaaa/
        # ----------------------------------------
        rm -rf /tmp/bckp_dados`date +%d%m%Y`
        echo "Fim do Backup"
else
        echo -e "Não foi gerada a imagem pois mkisofs não estava disponível,\na copia do backup ficou em /tmp/bckp_dados`date +%d%m%Y`"
        echo "Fim do Backup"
fi
#

Scripts recomendados

Script de Backup em Fita DAT

LIXEIRA COMPLETA!

Adição automática dos repositórios do Google Chrome, Google Talk Plugin, Google Earth, Dro no Ubuntu

Script para comparar CD's

Buscador e tocador de mp3


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts