Backup interativo (exemplo de shell script)

Publicado por Alan Rafael Rodrigo Batista 06/12/2003

[ Hits: 12.826 ]

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

Script Horario de Verao

Script simples para gerenciar netcat

SCRIPT PARA AUTOMAÇÃO NA CRIAÇÃO DE USUÁRIOS NO AMBIENTE LINUX.

Simula comando PAUSE do MSDOS

Script simples para compactar e descompactar arquivos


  

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