Backup avançado

Publicado por Eduardo Vieira Mendes 19/03/2007

[ Hits: 8.554 ]

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

Script para montagem de compartilhamento SAMBA (Gentoo)

Script para autenticar usuario ip fixo speedy

Instalação da Multilib no Slackware

Backup de arquivos do Linux para um servidor FTP

RSYNC + NFS


  

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