Script de backup em CD/DVD

Publicado por Davi Rodrigues (última atualização em 06/07/2010)

[ Hits: 7.967 ]

Homepage: http://br.linkedin.com/pub/davi-rodrigues/23/319/68b

Download 4514.backup.sh

Download 1277840435.backup (versão 2)




Script de backup em CD/DVD. O mesmo funciona com o dialog.

Comando para instalar as dependências do script (Debian e derivados):

# apt-get install mkisofs cdrecord dvd+rw-tools

  



Versões atualizadas deste script

Versão 2 - Enviado por Davi Rodrigues em 29/06/2010

Changelog: Nessa versão acrescentei gravação de arquivos separados, com escolha do usuário, irei fazer um artigo explicando as funcionalidades do sistema de backup, mas preciso concertar um pequeno problema que é fazer com que ele possibilite a seleção de vários arquivos ao mesmo tempo para gravar no DVD.

Download 1277840435.backup


Esconder código-fonte

#!/bin/bash
#
# Script Feito por Davi Rodrigues
# Email <[email protected]>

trap 2 exit
while : ; do

# Menu de Opcoes
clear
opcao=$(dialog --stdout --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues" --menu "Sistema de Backup G. PEGADO" 0 50 6 \
1 "Backup em CD" \
2 "Backup em DVD" \
3 "Suporte ao sistema" \
0 "Sair do Sistema")
# Sai do Menu caso aperte ESC ou CANCELAR
[ $? -ne 0 ] && break

case $opcao in 
   0)
     # Sistema de Backup
      clear
      echo "Sistema de Backup G. PEGADO"
      echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
      echo
      echo
      echo "Muito Obrigado pela Opcao, qualquer duvida aperte a opcao 3 do menu anterior"
      echo
      echo
      sleep 1
      exit 0
   ;;
   1)
     # Opção para gravação em CD-R/RW
      clear
   DIR=$(dialog --stdout  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                \
      --inputbox 'Digite o diretorio que deseja fazer o backup:'\
      8 40)
   if [ -d "$DIR" ]; then
      if [ $DIR = /backup ]; then
      clear
      dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
      --title 'Alerta' --msgbox 'O diretorio escolhido nao pode ser "/backup" \nE tambem nao podera escolher o diretorio "/" \nPor Favor insira outro' 0 0
      DIR=$(dialog --stdout   --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"               \
         --inputbox 'Digite o diretorio que deseja fazer o backup:'\
         8 40)
         if [ -d "$DIR" ]; then
            if [ $DIR = /backup ]; then
               clear
               dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
               --title 'Alerta' --msgbox 'Ja foi dito os diretorios que nao podera \nescolher por favor execute novamente o sistema' 0 0
               exit 0
            fi
         else
            dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
            --title 'Alerta' --msgbox 'Foi verificado que o diretorio digitado nao existe \nPor favor Insira o diretorio correto' 0 0
            DIR=$(dialog --stdout  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                \
               --inputbox 'Digite o diretorio que deseja fazer o backup:'\
               8 40)
         fi
      fi
   else 
      dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
      --title 'Alerta' --msgbox 'Foi verificado que o diretorio digitado nao existe \nPor favor Insira o diretorio correto' 0 0
      DIR=$(dialog --stdout  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                \
         --inputbox 'Digite o diretorio que deseja fazer o backup:'\
         8 40)
   fi     
   /usr/bin/mkisofs -r -J -o /backup/backup.iso $DIR
   /usr/bin/cdrecord -v fs=16M speed=8 dev=2,0,0 --data /backup/backup.iso && rm -rf /backup/backup.iso   
   dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
   --title 'Parabens' --msgbox 'Backup finalizado com sucesso! \nPor favor Remova o Cd-R/RW do dispositivo' 8 40

        ;;
   2)
      # Opção para Gravação em DVD-R/RW
    clear
    DIR=$(dialog --stdout --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                 \
        --inputbox 'Digite o diretorio que deseja fazer backup:'\
        8 40)
   if [ -d "$DIR" ]; then
      if [ $DIR = /backup ]; then
      clear
      dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
      --title 'Alerta' --msgbox 'O diretorio escolhido nao pode ser "/backup" \nE tambem nao podera escolher o diretorio "/" \nPor Favor insira outro' 0 0
      DIR=$(dialog --stdout  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                \
         --inputbox 'Digite o diretorio que deseja fazer o backup:'\
         8 40)
         if [ -d "$DIR" ]; then
            if [ $DIR = /backup ]; then
               clear
               dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
               --title 'Alerta' --msgbox 'Ja foi dito os diretorios que nao podera \nescolher por favor execute novamente o sistema' 0 0
               exit 0
            fi
         else
            dialog    --title 'Alerta' --msgbox 'Foi verificado que o diretorio digitado nao existe \nPor favor Insira o diretorio correto' 0 0
            DIR=$(dialog --stdout  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"                \
               --inputbox 'Digite o diretorio que deseja fazer o backup:'\
               8 40)
         fi
      fi
   else 
      dialog    --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
      --title 'Alerta' --msgbox 'Foi verificado que o diretorio digitado nao existe \nPor favor Insira o diretorio correto' 0 0
      DIR=$(dialog --stdout   --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"               \
         --inputbox 'Digite o diretorio que deseja fazer o backup:'\
         8 40)
   fi  
   /usr/bin/mkisofs -r -J -o /backup/backup.iso $DIR
   /usr/bin/growisofs -dvd-compat -speed=8 -Z /dev/cdrom=/backup/backup.iso && rm -rf /backup/backup.iso
        dialog  --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues"\
      --title 'Parabens' --msgbox 'Backup finalizado com sucesso! \nPor favor Remova o DVD-R/RW do dispositivo' 0 0

   ;;
   3)
     # Informações de suporte
      clear
   dialog --backtitle "G. PEGADO IMP. & EXP.                  ..::SISTEMA DE BACKUP::..                  By Davi Rodrigues" \
   --msgbox "Sistema de Backup G. PEGADO
   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Celular : (085) 8704.8139
   Segunda a sexta - 08:00 as 17:48
   Email : [email protected]" 0 0
      ;;
esac
done

Scripts recomendados

Copiar subdiretório presente em vários diretórios

Postfix - Listar usuários com over quota

Script de busca (google em shell)

Loadbalance FAILOVER V.5

Script Firewall - Regras do Iptables


  

Comentários
[1] Comentário enviado por fabiocs em 06/07/2010 - 15:09h

Aqui,

Teste na versão 1.
com o seguinte erro:
"/bin/bash^M: interpretador inválido: Arquivo ou diretório não encontrado
"
Não executou

Teste versão 2.
Aqui comigo não funcionou.. pelo que entendi do erro.. que foi mais ou menos esse "error Syntax SCSI depreciate"
Me parece que é alguma coisa haver com o gravadora.

Tente implementar uma função que verifique se o CD / DW precisar ser apagado..

Abraço,
Fábio

[2] Comentário enviado por davirodrigues em 06/07/2010 - 17:23h

Boa tarde fabiocs, ja fiz uma versão que esta muito afrente do que esse script que esta aqui no VOL, onde há possíbilidade do usuário escolher quantos arquivos irá salvar porém achei meio chato fica mandando direto várias atualizações, ja esta quase que perfeita na versão que estou utilizando hoje, na terceira opção eu posso escolher quantos arquivos eu quiser ele então vai gerar uma ISO e gravar no DVD, não quis implementar essa ferramenta para CD pois acho que é um tanto que foda para ficar gravando vários CD's tento uma mídia com capacidade maior, e estou providenciando agora uma divisão de arquivos, por exemplo se o diretório ou arquivo for muito grande, então vou dividi-lo de 4 em 4 gigas e então gravar os DVD's, assim que terminar vou publicar...não se preoculpe, mais....esse erro deu quando vc tentou fazer o que mesmo? ou melhor qual opção do menu foi escolhida?

[3] Comentário enviado por davirodrigues em 06/07/2010 - 17:40h

Ah! outra coisa para funcionar perfeitamente eu criei uma partição onde ficará todos os backup armazenados e criei também outro diretório onde serão feitas a movimentação dos arquivos para gravação do CD/DVD, vou lista-los abaixo:
Criei uma partição com sistema de arquivo Journaling ReiserFS - Que se torna mais rápida do que EXT3
/backup
Nela "/backup" serão mantidos os arquivos por um período de tempo, e dentro dela criei outra 3 pastas para manusear e armazenar os arquivos, segue abaixo a arvore:
/backup/bkp - Onde se localiza os arquivos que são mantidos no servidor por um período de tempo.
/backup/temp - Onde é gerada a iso que será gravada no CD ou DVD.
/backup/ram - Onde é feito o manuseio dos arquivos selecionados pelo usuário, antes de gerar a iso. (são armazenados os arquivos temporáriamente para geração da ISO).

Provavelmente irá precisar criar esses diretórios, e aconçelho que seja partição separada. qualquer coisa avisa ai.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts