Front-end para backup em CDRW e DVDRW

Publicado por José Lima 30/09/2005

[ Hits: 6.167 ]

Download backup.sh




Front-end desenvolvido com XDialog para backup de arquivos em CDRW ou DVDRW.

  



Esconder código-fonte

#!/bin/sh

# Interface grafica para backup
# utilizando o XDialog como ferramenta
# de desenvolvimento

# Criado por Jose Alves de Lima - ilsinho@ig.com.br - em 18/07/2005



# Funcoes especificas

##################################
#           MENSAGENS            #
##################################

################# Mensagem inicial
Mensagem_Inicial() {
Xdialog --title "Backup"\
        --ok-label "Continuar"\
        --msgbox "Você poderá utilizar esta ferramenta para \n backup de arquivos do sistema.\n\n José Alves \n ilsinho@ig.com.br" 15 45

case $? in
    0) Menu_Inicial;;
    255) Mensagem_Finalizar;;
esac
}


################# Mensagem finalizar
Mensagem_Finalizar() {
Xdialog --title "Finalizar Programa"\
        --ok-label "Finalizar"\
        --cancel-label "Não finalizar"\
        --yesno "\nTem certeza que deseja finalizar o programa?\n" 0 0

case $? in
    0) exit 0;;
    1) Menu_Inicial;;
    255) exit 0;;
esac
}


################# Mensagem - Backup ok
Backup_Ok() {
Xdialog --title "Backup realizado"\
        --msgbox "O backup foi realizado com sucesso." 10 45

case $? in
    0) Menu_Inicial;;
    255) Mensagem_Finalizar;;
esac
}


################# Mensagem - Insira cd
Insira_Cd() {
Xdialog --title "Insira CD-RW"\
        --msgbox "Insira um CD do tipo RW. \n Clique em OK para continuar." 10 45

case $? in
    0) Grava_CD;;
    255) Mensagem_Finalizar;;
esac
}


################# Mensagem - Insira dvd
Insira_Dvd() {
Xdialog --title "Insira DVD-RW"\
        --msgbox "Insira um DVD do tipo RW \n Clique em OK para continuar." 10 45

case $? in
    0) Grava_DVD;;
    255) Mensagem_Finalizar;;
esac
}



##################################
#       FUNCOES DE GRAVACAO      #
##################################

Grava_CD() {

#desmontagem da unidade de CD
umount /media/cdrecorder

#parametros do cd
dvdrecord --scanbus > /tmp/cdrw
CD=`cat /tmp/cdrw | grep RW | awk {'print $1'}`

#nomeacao da pasta que recebe os arquivos
#compactados de backup e criacao da pasta para backup

PASTA=`date +%d-%m-%Y`
mkdir /tmp/$PASTA

#copia e compactacao dos arquivos para a pasta criada
#utiliza a ralacao de pastas listadas em /server/adm_server/lista_backup.txt

for LISTA in `cat /servidor/backup/lista.txt` ; do
  touch /tmp/arquivo.txt
  echo $LISTA > /tmp/arquivo.txt 
  ARQUIVO=`cut -d/ -f2 /tmp/arquivo.txt`
  tar -czvf /tmp/$PASTA/$ARQUIVO.tar.gz $LISTA
done

#apaga o conteudo do CD/RW - limpeza

cdrecord -v dev=ATA:$CD speed=8 blank=fast

#cria o ISO para o CD

mkisofs -r -o /tmp/iso_backup /tmp/$PASTA/*

#gravacao do cd

cdrecord -v dev=ATA:$CD speed=4 -eject -data /tmp/iso_backup

#remocao dos arquivos temporarios

rm -fR /tmp/$PASTA
rm -f /tmp/iso_backup
rm -f /tmp/arquivo.txt
rm -f /tmp/cdrw

Backup_Ok;

}


Grava_DVD() {

#desmontagem da unidade de CD
umount /media/cdrecorder

#parametros do dvd
dvdrecord --scanbus > /tmp/dvd
DVD=`cat /tmp/dvd | grep DVDRW | awk {'print $1'}`

#nomeacao da pasta que recebe os arquivos
#compactados de backup e criacao da pasta para backup

PASTA=`date +%d-%m-%Y`
mkdir /tmp/$PASTA

#copia e compactacao dos arquivos para a pasta criada
#utiliza a ralacao de pastas listadas em /server/adm_server/lista_backup.txt

for LISTA in `cat /servidor/backup/lista.txt` ; do
  touch /tmp/arquivo.txt
  echo $LISTA > /tmp/arquivo.txt 
  ARQUIVO=`cut -d/ -f2 /tmp/arquivo.txt`
  tar -czvf /tmp/$PASTA/$ARQUIVO.tar.gz $LISTA
done

#apaga o conteudo do CD/RW - limpeza

dvdrecord -v dev=ATA:$DVD speed=8 blank=fast

#cria o ISO para o CD

mkisofs -r -o /tmp/iso_backup /tmp/$PASTA/*

#gravacao do cd

dvdrecord -v dev=ATA:$DVD speed=4 -eject -data /tmp/iso_backup

#remocao dos arquivos temporarios

rm -fR /tmp/$PASTA
rm -f /tmp/iso_backup
rm -f /tmp/arquivo.txt

Backup_Ok;

}



##################################
#            TAREFAS             #
##################################

################# Opcoes de trabalho iniciais
Menu_Inicial() {
Xdialog --title "Opções de Trabalho"\
        --ok-label "Continuar"\
        --cancel-label "Finalizar"\
        --menubox "\nEscolha uma opção de trabalho \n para administração de grupos e usuários do Samba:\n\n" 15 56 6 \
        "CD-RW" "Backup de arquivos locais em CD"\
    "DVD-RW" "Backup de arquivos locais em DVD" 2> /tmp/menu.tmp.$$

opcao=$?
escolha=`cat /tmp/menu.tmp.$$`
rm -f /tmp/menu.tmp.$$

case $opcao in
    0) case $escolha in
            CD-RW) Insira_Cd;;
       DVD-RW) Insira-Dvd;;
       esac;;
    1) Mensagem_Finalizar;;
    255) Mensagem_Finalizar;;
esac
}


Mensagem_Inicial;

Scripts recomendados

Criação de pasta com senha no Apache

Piano em Shell + Yad

Gerência do Squid

Compilando o apache2.2 com php5 e mysql5.1 no slackware

Ajuste Dinâmico do Governador de CPU no Linux


  

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