quarta-feira, 27 de janeiro de 2010

Script de Backup - Dbexport

Aqui vai um script para o dbexport

#!/bin/sh
# Amilcar de Jesus Moreti
# ajmoreti@yahoo.com.br
#
# /usr/local/bin/BkpExportNot.sh
#
# Script de Backup Full 00:00 hrs
#
# Data Criacao = 06/07/2009 - Data Modificacao = 30/09/2009
#
# Versao = 2    -       Release = 01
# Variaveis Informix
INFORMIXDIR=/usr/informix
DBCENTURY=C
INFORMIXSERVER=prd
ONCONFIG=onconfig.prd
DBDATE=dmy4/
DBMONEY=,
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
PATH=$INFORMIXDIR/bin:$PATH
export INFORMIXDIR DBCENTURY INFORMIXSERVER ONCONFIG DBDATE DBMONEY LD_LIBRARY_PATH PATH
# Variaveis de Sistemas
DirBkpRem="isis:/export"
DirBkp="/export"
DirNoturno="$DirBkp/Noturno"
Dia=`date --date '1 day ago' +%a`
DirDia="$DirNoturno/$Dia"
DirSemanal="$DirBkp/Semanal"
DirSem="$DirSemanal/$Dia"
UpdateStatistics="/usr/local/bin/update.sql"
# Funcao para Montar NFS
FnMontaNFS ()
{
        sudo mount -t nfs $DirBkpRem $DirBkp
}

FnDesmontaNFS ()
{
        sudo umount $DirBkp
}
# Verifica se NFS esta montada
df | grep $DirBkpRem
Ver=$?
while [ $Ver != 0 ]
        do
        FnMontaNFS
        Ver=$?
done
# EXPORT NOTURNO - Segunda a Sabado
if [ $Dia != "Sun" ]
then
# Verifica se existe Diretorios de Backups
        if [ ! -d $DirNoturno ]
        then
                mkdir -p $DirDia
        else
                if [ ! -d $DirDia ]
                then
                        mkdir $DirDia
                fi
        fi
        echo "Se posicionando no Diretorio de Backup"
        cd $DirDia

        echo "Efetuando Limpeza do Diretorio de Backup Atual"
        rm -rf crm.exp logix.exp dbexport.out nfe.exp
        cd $HOME
        echo "Tirando Instancia do Ar"
        onmode -ky
        Ver=$?
        sleep 2
        if [ $Ver == 0 ]
        then
                echo "Instancia $INFORMIXSERVER Baixada com Sucesso"
        else
                echo "Ocorreu problemas ao Baixar a Instancia $INFORMIXSERVER, favor verificar"
        fi
        echo ""
 echo "Colocando a instancia no ar em mode single-user"
        sleep 5
        oninit -j
        Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Instancia $INFORMIXSERVER no AR com Sucesso"
        else
                echo "Ocorreu problemas com a instancia $INFORMIXSERVER, favor verificar"
        fi

        echo "Exportando dados do logix"
        cd $DirDia
        dbexport logix
        Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco Logix"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco logix, favor verificar"
        fi
        sleep 5

        echo "Exportando dados do crm"
        dbexport crm
        Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco CRM"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco CRM, favor verificar"
        fi
        sleep 5

        echo "Exportando dados do nfe"
        dbexport nfe
 Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco NFE"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco NFE, favor verificar"
        fi
        sleep 5
# EXPORT SEMANAL - Domingo
else
# Verifica se existe Diretorios de Backups
        if [ ! -d $DirSemanal ]
        then
                mkdir -p $DirSem
        else
                if [ ! -d $DirSem ]
                then
                        mkdir $DirSem
                fi
        fi
        echo "Se posicionando no Diretorio de Backup"
        cd $DirSem

        echo "Efetuando Limpeza do Diretorio de Backup Atual"
        rm -rf crm.exp logix.exp dbexport.out nfe.exp
        cd $HOME

        echo "Tirando Instancia do Ar"
        onmode -ky
        Ver=$?
        sleep 2
        if [ $Ver == 0 ]
        then
                echo "Instancia $INFORMIXSERVER Baixada com Sucesso"
        else
                echo "Ocorreu problemas ao Baixar a Instancia $INFORMIXSERVER, favor verificar"
        fi
        echo ""

        echo "Colocando a instancia no ar em modo single-user"
        sleep 5
        oninit -j
        Ver=$?
if [ $Ver == 0 ]
        then
                echo "Instancia $INFORMIXSERVER no AR com Sucesso"
        else
                echo "Ocorreu problemas com a instancia $INFORMIXSERVER, favor verificar"
        fi
        sleep 5

        echo "Exportando dados do logix"
        cd $DirSem
        dbexport logix
        Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco Logix"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco logix, favor verificar"
        fi
        sleep 5

        echo "Exportando dados do crm"
        dbexport crm
        Ver=$?
        if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco CRM"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco CRM, favor verificar"
        fi
        sleep 5

        echo "Exportando dados do NFE"
        dbexport nfe
        Ver=$?
if [ $Ver == 0 ]
        then
                echo "Dados exportados com Sucesso do Banco NFE"
        else
                echo "Ocorreu problemas na Exportacao dos dados do banco NFE, favor verificar"
        fi
        sleep 5
fi
cd $HOME
# Voltar a instancia a Multi-User
echo "Colocando a instancia em modo multi-user"
onmode -m
# Update Statistics
echo "Update Statistics Logix"
dbaccess logix $UpdateStatistics

echo "Update Statistics CRM"
dbaccess crm $UpdateStatistics

echo "Update Statistics NFE"
dbaccess nfe $UpdateStatistics
# Desmontar NFS
FnDesmontaNFS

Fiquem na Paz.

Um comentário:

  1. Fiz um script igual a este para rodar todos os domingos para fazer backup dos bancos da intancia de homologação, valeu por compartilhar.

    ResponderExcluir