Backup avançado

Publicado por Eduardo Vieira Mendes 19/03/2007

[ Hits: 8.432 ]

Download back




Script de backup.

Está incluída a possibilidade de escolher quais pastas a serem feitos backup, pasta onde deve ser armazenado o backup e ainda em qual formato de compressão deve ser utilizado.

  



Esconder código-fonte

#!/bin/bash
############################################
# Script de backup
# Criado por:
# Eduardo Vieira Mendes
# eduardovmendes@gmail.com
# LUS: 298813
# Uso: back <opções> <local> <dirs>
############################################

# Cria as váriaveis (Data inicial - Título - Arquivos de log - Dara + Hora - Diretórios - Local a ser salvo
di=`date +%d-%m-%Y`
dh=`date +%d-%m-%Y+%H:%M`
title="backup-$dh"
log=/var/log/"backup-$di".log
local=$2
dirs="$3 $4 $5 $6"

uso() {
#Função para mostrar a ajuda!
   echo "================================================================="
   echo " Backup de arquivos do sistema"
   echo " Faz backup dos arquivos importantes do sistema e os comprime"
   echo " Uso: back <opções> <local> <dirs>"
   echo " Onde:"
   echo
   echo " <opções>"
   echo "    -t | --tar     Sem compressão, apenas armazena os arquivos"
   echo "    -g | --gzip    Compressão para Gzip"
   echo "    -b | --bzip    Compressão para Bzip"
   echo
   echo "<local>"
   echo " Local a ser gravado o backup"
   echo
   echo "<dirs> Diretórios a serem feitos o backup"
   echo 
   echo "================================================================="
   exit 1
}

# Limpa a tela
clear

bkptar() {
# Se nenhum local for especificado para o arquivo do backup, para e mostra a ajuda
if [ "$local" == "" ]; then
   echo
   echo "Nenhum local especificado para gravar o arquivo de backup"
   echo
   uso
   exit 1
fi

# Se nenhuma pasta for selecionada para o backup, para e mostra a ajuda
if [ "$dirs" == "" ]; then
   echo
   echo "Nenhuma pasta especificada para ser feito o backup"
   echo
   uso
   exit 1
fi

# Caso contrário inicia o backup sem compressão
echo "Iniciando backup sem compressão as $dh"

# Preparando arquivo de log
echo "O arquivo de log será gerado em $log"

rm -f $log

echo "Iniciando backup sem compressão as $di" >> $log

localar=$local$title

tar -cpPmv $dirs -f $localar.tar >> $log

echo "Backup criado com susesso em $localar"
exit 1
}

bkpg() {
# Se nenhum local for especificado para o arquivo do backup, para e mostra a ajuda
if [ "$local" == "" ]; then
   echo
   echo "Nenhum local especificado para gravar o arquivo de backup"
   echo
   uso
   exit 1
fi

# Se nenhuma pasta for selecionada para o backup, para e mostra a ajuda
if [ "$dirs" == "" ]; then
   echo
   echo "Nenhuma pasta especificada para ser feito o backup"
   echo
   uso
   exit 1
fi

# Caso contrário inicia o backup com compressão gzip
echo "Iniciando backup com compressão Gzip as $dh"

# Preparando arquivo de log
echo "O arquivo de log será gerado em $log"

rm -f $log

echo "Iniciando backup com compressão Gzip as $di" >> $log

localar=$local$title

tar -cpPmv $dirs -f $localar.tar.gz >> $log

echo "Backup criado com susesso em $localar"
exit 1
}

bkpb() {
# Se nenhum local for especificado para o arquivo do backup, para e mostra a ajuda
if [ "$local" == "" ]; then
   echo
   echo "Nenhum local especificado para gravar o arquivo de backup"
   echo
   uso
   exit 1
fi

# Se nenhuma pasta for selecionada para o backup, para e mostra a ajuda
if [ "$dirs" == "" ]; then
   echo
   echo "Nenhuma pasta especificada para ser feito o backup"
   echo
   uso
   exit 1
fi

# Caso contrário inicia o backup sem compressão
echo "Iniciando backup com compressão Bzip as $dh"

# Preparando arquivo de log
echo "O arquivo de log será gerado em $log"

rm -f $log

echo "Iniciando backup com compressão Bzip as $di" >> $log

localar=$local$title

tar -cpPmvj $dirs -f $localar.tar.bz >> $log

echo "Backup criado com susesso em $localar"
exit 1
}

#Escolher o que rodar:
while true ; do
    case "$1" in
   -h|--help)
      uso; exit 1 ;;
   "")
      uso ; exit 1 ;;
   -t|--tar)
      bkptar ; exit 1 ;;
   -g|--gzip)
      bkpg ; exit 1 ;;
   -b|--bzip)
      bkpb ; exit 1 ;;
   --)
      uso ; exit 1 ;;
   *)
      uso ; exit 1 ;;
    esac
done

Scripts recomendados

estrutura para menu

Firewall com Iptable - rc.Firewall

Gerar senhas aleatórias de qualquer tamanho

Envio de SMS via Nagios

Fazendo Perguntas


  

Comentários
[1] Comentário enviado por CerberusBH em 21/03/2007 - 10:47h

Gostei deste script!
Já adicionei aos meus favoritos!
:-D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts