Backup interativo (exemplo de shell script)

Publicado por Alan Rafael Rodrigo Batista 06/12/2003

[ Hits: 12.684 ]

Download bkpinterativo.sh




Escrevi este shell script com o intuito de posta-lo como exemplo para
que outras pessoas que queiram aprender esta linguagem o tenham como
exemplo.
Em breve postarei um artigo explicando passo a passo este script para
que possam iniciar nesta linguagem tão interessante e útil

  



Esconder código-fonte

#!/bin/bash
##################################################################
#Script de backup interativo
#Escrito por Alan Rafael R. Batista
#website www.ntsim.com.br
#Qualquer alteração envie um email para rafael@tecnologia.com.br
#Você é bem vindo para alterar este script no que for necessário!
#
##################################################################
echo -e "

Este é o Script de backup Interativo
Desenvolvido por: Alan Rafael R. Batista
Ele lhe farah algumas perguntas
Para a boa execução deste script vc deve estar com
privilegios de super-usuario (root)
Vamos comecar...

tecle enter........
"
read nada
# lista as particoes de disco montadas
df

echo -e "Estas são as particoes de disco montadas.
Deseja desmontar alguma antes de começar?
Obs: Se elas estiverem na fstab serão remontadas no final deste script.

      [1] para sim
      [2] para nao

      Opcao: \c"
read desmont
[ "$desmont" = 1 ] && conf=1
[ "$desmont" -gt 2 ] && conf=1
while [ "$conf" = 1 ]
do
   #inicio desmont=1
   if [ "$desmont" = 1 ]
   then
   echo -e "Qual destas vc quer desmontar?
   "
   cont=1
   desmont2=1

      while [ "$desmont" = 1 ]
      do
      echo -e "Digite o caminho igual o acima e tecle enter: \c"
      read caminho
      eval caminho`echo $cont`=$caminho

         # se digitado o caminho
         if [ -n "$caminho" ]
         then
         echo ""
         umount $caminho

         echo -e "
         Acabo de desmontar $caminho
         "
         cont=`expr $cont + 1`
         else
         echo "Voce não digitou o caminho suponho que desistiu de desmontar!"
         fi

      echo -e "Deseja desmontar mais alguma partição?

      [1] para sim
      [2] para nao

      Opcao: \c"
      read desmont
         if [ "$desmont" = 1 ]
         then
         conf=1
         elif [ "$desmont" = 2 ]
         then
         echo "Beleza parei"
         conf=2
         fi
      done
   elif [ "$desmont" -gt 2 ]
   then
   echo "Opcao invalida tente [1] sim ou [2] nao"
   echo -e "Opcao: \c"
   read desmont
   [ "$desmont" = 1 ] && conf=1
   [ "$desmont" -gt 2 ] && conf=1
   [ "$desmont" = 2 ] && conf=2
   #Fim do deamont=1
   fi
#fim da pergunta
done



while [ -z $pasta ]
do
echo -e "
Escreva agora o caminho da pasta que quer fazer backup
Caminho: \c"
read pasta
   if [ \( -z "$pasta" \) -o \( ! -d "$pasta" \) ]
   then
   echo "Voce deve colocar um caminho para o Backup e ele tem que ser válido"
   pasta=
   fi
done

while [ -z $lugar ]
do
echo -e "
Escreva agora o caminho da pasta onde vamos gravar o backup
Obs: Verifique se tem espaço nesta pasta hein.

Caminho: \c"
read lugar

   if [ \( -z "$lugar" \) -o \( ! -d "$lugar" \) ]
   then
   echo "Voce deve colocar um caminho para o Backup ser salvo e ele tem que ser válido"
   lugar=
   fi
done

echo -e "
Agora escreva o nome do backup
Obs: O backup tera o nome precedido da data de hoje

Nome: \c"
read nbkp

if [ -z $nbkp ]
then
$nbkp=backup
echo "Se voce não colocou o nome vou assumir o nome \"backup\""
fi


echo -e "É agora vamos começar a fazer o backup!!!
Prepare-se será uma aventura emocionante
"
DATA=`date +%d-%m-%Y`
tar cvzf $lugar/$DATA-$nbkp.tar.gz $pasta >> $lugar/$DATA-log.txt 2> /dev/null




i=1
[ -z "$cont" ] && cont=0
while [ "$i" -le "$cont" ]
do
echo -e "Agora vou remontar as particões que estavam no fstab e foram desmontadas

"
eval echo \$caminho$i
eval montar=\$caminho$i
   if [ -n "$montar" ]
   then
   eval mount \$caminho$i
   eval echo -e "Montei \$caminho$i"
   fi
i=`expr $i + 1`
done

Scripts recomendados

Cálculo do fatorial

Verifica se quem executa é root

cieQemu - Interface para o qemu (Shell & Xdialog)

Gerador de senhas

Simply Session


  

Comentários
[1] Comentário enviado por donnovan em 09/12/2003 - 11:07h

Bom dia a todos do VIVAOLINUX

Estou preisando de um Exemplo de BACKUP INCREMENTAL

Vcs poderiam me ajudar ?

DONNOVAN

[2] Comentário enviado por cmelo em 01/09/2006 - 13:22h

eu posso desmonstar a partição / do linux e fazer o backup ?! Caso negativo existe outra forma de realizar o backup de todo o hd com o computador ligado em funcionamento ?

[3] Comentário enviado por cmelo em 01/09/2006 - 13:45h

Olá Alan, Ótimo tutorial!

Gostaria de saber se em vez de desmontar a partição linux eu poderia deixá-la somente como leitura. Como eu faço isso? Daria certo ?

Meu objetivo é não ter que desligar o computador e nem usar um livecd e fazer o backup de madrugada.

Um abraço.

[4] Comentário enviado por arrb em 01/09/2006 - 13:54h

Você poderia fazer o backup somente das pastas que realmente exigem backup, como por exemplo a /home , naum ter pq fazer backup das pasta /root, /tmp, /bin, logo, naum tem porque fazer backup da pasta / inteira.

Certo?!

Abraço!

[5] Comentário enviado por cmelo em 04/09/2006 - 17:48h

Obrigado pela Dica !

Mas a minha idéia inicial era realmente fazer o backup de tudo para um outro hd (slave).


[6] Comentário enviado por claudioveronezi em 08/01/2007 - 08:48h

Gostaria de saber o que se pode fazer se arquivo destino ultrapassar 2 gb, tentei o fifo tentei split e nada...

att.
Cláudio Veronezi Mendes

[7] Comentário enviado por celsof2 em 26/03/2008 - 04:13h

valeuuuuuuuuu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts