Script simples de Backup para os diretórios listados abaixo do /

Publicado por Igor Teixeira da Rocha (última atualização em 18/05/2012)

[ Hits: 7.516 ]

Download backup_full.sh.txt




Bom pessoal, esta é a minha primeira contribuição aqui no VOL, é um script simples, sem grandes implementações, pois ele
simplesmente comprimi os diretórios listados abaixo do /.

Mas não deixa de ser útil, pois imagine sem querer rodar um rm -r /etc ao invés de etc(que poderia ser uma cópia do /etc em algum diretório), bastaria descompactar o backup e mover o etc abaixo do barra(mv etc /), pronto os arquivos de configuração estão todos ali de novo, rsrsrs..(sei que parece uma situação difícil mas pode acontecer rsrsrs).. Espero que eu possa ajudar algum novato assim como eu :)

“Aquele que não compartilha seu conhecimento, deixa morrer consigo os frutos de sua sabedoria.”

Abraço galera....

  



Esconder código-fonte

#!/bin/bash
# script simples de backup 

# formatação da Data no nome do arquivo .tar.gz
DATA_BKP=$(date "+%d/%m/%y")
export DATA_BKP

# listagem dos diretórios em formato 'single-column' única coluna
DIR_BARRA=$(ls / --format='single-column')
export DIR_BARRA

# Baner exibido no inicio do Backup
clear_console
for i in $(seq 1 3)
do
   echo -e '\t\t\t\e[44;37m ###########################################\e[0m'
   sleep 1s
done

   echo -e '\t\t\t\e[36m Inicializando Backup automático de todo FileSystem ...\e[0m'
   echo $'\t\t Listando os Diretórios atuais abaixo do FileSystem Principal (/).. '
   echo $DIR_BARRA
   echo ""
   echo " Aguarde enquanto o backup é inicializado...."
   sleep 1
   echo ""

 # Variavel auxiliar que ira receber o nome de cada do diretório a cada interação do loop for
aux=1
export aux

# backup propiamente dito
# realiza um loop enquanto o comando ls / --format='single-column' 
   for i in  $(ls / --format='single-column')
   do

         # atribui a variavel aux o nome do diretorio corrente no loop
         aux=$i
         # compacta o diretório que listado, atribuindo a ale o nome do diretório
         # com a data atual, exemplo etc_14_05_2012.tar.gz e salva no diretório corrente
         # Caso haja algum erro na execução do backup a saida padrão de erro STDERROR
         # é jogada para dentro de um arquivo. (arq.erro)
         # e um arquivo chamado info_backup.log é criado com as informações do ocorrido.
         tar -cvzf ${i}`date +%Y_%m_%d`.tar.gz /$i 2>> arq.erro
         if [ $? != 0 ];then
            echo "Erro ao realizar backup do FileSystem $i ,rodar novamente" >> info_backup.log
         else
            echo "Backup do FileSystem $i realizado com sucesso na data $(date)"
         fi

   done

 # fim

Scripts recomendados

Formatar o terminal com cores e efeitos

Acesso a unidades

Script muito interessante

Calcular média escolar no shell

Monitoramento automático de logs e envio por e-mail – Fácil e explicado


  

Comentários
[1] Comentário enviado por danielbsabr em 18/05/2012 - 15:32h

Fica muito bom usando com o cron, obrigado.

[2] Comentário enviado por igor_rocha em 18/05/2012 - 22:20h

O meu caro danielbsabr muito obrigado pelo comentário, é com o cron acaba facilitando e bastante a execução do script sem contar que ele pode e muito ser melhorado rsrs.. Valeu cara, abraço.

[3] Comentário enviado por igor_rocha em 18/05/2012 - 22:26h

Pessoal peço desculpa pelos erros de português no script, e nas explicações, fiz durante a madruga morrendo de sono, :S valeu.

[4] Comentário enviado por vitinho217 em 22/07/2014 - 11:13h

O linux tem uma política de permissões da acesso isso tornaria dificil de se apagar uma pasta que não deveria ser apagada como o /etc, a não ser que o usuário realmente queira prejudicar o sistema ...

Um abraço, valeu pelo script !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts