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.632 ]

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

Programa de músicas

Script para desinstalar pacotes desnecessários no OpenSuse

Remover linhas duplicadas em arquivos

Alterar valores de jogos em Flash

Script para alterar listas do Squid


  

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