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

Publicado por Fábio Flores 26/02/2007

[ Hits: 7.086 ]

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

conversor de bases no shell

Autenticando automaticamente o Speedy Business

Seletor de emojis em yad

Removendo lixo do sistema

Remover arquivos com mais de "N" dias da Lixeira do Samba


  

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