sexta-feira, 20 de novembro de 2009

Script de Backup

Como havia comentando o post passado estava com problema na execução de um script (ver post rsync). A solução foi surpreendente e conforme vai passando os anos, fico mais impressionado com o mundo *NIX.

bom o problema ja discuti no post anterior, agora vou postar o script rodando perfeitamente em meu sistema, gostaria de chamar a atenção para o comando "rev", achei muito legal, e foi esse comando que resolveu meu problema. 

sem mais delongas, aqui vai o script.

#!/bin/bash
#************************************************

#Script Criado com o proposito de backupear remotamente o servidor Shiva atraves
# do comando rsync.
#------------------------------------------------ # Criacao.........Amilcar de Jesus Moreti
# Data Criacao....05 de Agosto de 2009
# Versao..........1
# Release.........1
# E-Mail..........ajmoreti@yahoo.com.br
# MSN.............acmoreti@msn.com
# Skype...........ajmoreti
#------------------------------------------------*
# LOCAL
#------------------------------------------------*
dirBkp="/backupsrv"
dumpFile="/dumpFiles"
dateBkp=`date +%A`
#------------------------------------------------*
# BACKUP SERVERS
#------------------------------------------------*
nomServer="shiva deva vishnu mozart"
dirshiva="/etc /home /lean /ordensProd /otimizador /pcp /qualidade /sgq /srf"
dirdeva="/etc /usr/local/bin /totvs/apo/logix /totvs/bin/appserver /root/.odbc.ini"
dirvishnu="/etc /usr/informix /usr/local/bin"
dirmozart="/etc /coml /home /usr/local/bin /srv"
dirisis=""
dirosiris=""
for nServer in ${nomServer}
do
        dirServer="$dirBkp/$nServer"
        if [ ! -d $dirServer ]
        then
                mkdir $dirServer
        fi

        listExclude="/usr/local/bin/${nServer}ListExclRsync"
        for sDir in $(eval echo \$dir${nServer})
        do
                rsync -C \
                -D \
                --recursive \
                --update \
                --links \
                --perms \
                --acls \
                --xattrs \
                --dirs \
                --owner \
                --group \
                --times \
                --verbose \
                --progress \
                --partial \
                --numeric-ids \
                --specials \
                --exclude-from=$listExclude \
                $nServer:$sDir $dirServer
dumpDir="$dumpFile/$nServer"
                if [ ! -d $dumpDir ]
                then
                        mkdir $dumpDir
                fi

                if [ ! -d $dateBkp ]
                then
                        mkdir $dumpDir/$dateBkp
                else
                        rm $dumpDir/$dateBkp/*.tar.gz
                fi
                newVar=`echo $sDir | rev | awk -F/ '{print $1}' | rev`
                tar -zcvf $dumpDir/$dateBkp/$newVar.tar.gz /$dirServer/$newVar --atime-preserve -p --remove-files
        done
done

3 comentários:

  1. http://desktop3d.blogspot.com/

    ResponderExcluir
  2. E ai Amilcar, cara muito bom o seu blog, tambem to seguindo a area de administração de redes com enfoque em segurança da informação, este script podera me ajudar, abção.

    Douglas- Ourinhos_SP

    ResponderExcluir