quinta-feira, 18 de fevereiro de 2010

Shell Script para Atualizar o Logix 5.10

Saudações a todos!!!

Estou postando esse script, pois um colega de trabalho , o Caio me pediu, ele esta fazendo um script para atualizar o logix 5.10, aqui ele vai ter uma boa ideia.  Boa sorte a todos.

Força ai Caio.
#!/bin/sh
# Script elaborado por Amilcar em 10-10-2003
LgxBkp="/bkpifx/bkp_fnt"
DtLgx=`date +"%Y%m%d_%H%M"`
Logo="/logix"
LogoTst="/logix_tst"
FntLgx="$Logo/fnt"
FntLgxTst="$LogoTst/fnt"
echo ""
echo "Scrip de Atualizacao de Fontes e OS Logix - Logocenter"
echo "======================================================"
echo ""
echo "Tecle Enter para Continuar..."
read enter
echo ""
echo "Atualizacao somente da base Teste ??? [y/n]"
echo "====================================="
read AtuTst
if [ $AtuTst == "n" ]
then
    echo "Processo de atualizacao somente da Base de Producao"
    echo "==================================================="
    echo ""
    read enter
    ls -l $FntLgx/*.zip > /dev/null 2> /dev/null
    cat /dev/null > /tmp/bkpfnt.tmp 2> /dev/null
    ConfArq=$?
    if [ ! $ConfArq == 0 ]
    then
            echo "Nao existem Fontes/OSs a serem Atualizados no momento!"
    else
            rm /tmp/bkpfnt.tmp > /dev/null 2> /dev/null
            echo "Foram encontrados os seguintes arquivos para atualizacao:"
            ls -l $FntLgx/*.zip
            echo ''
            for ZipLogo in `ls -A $FntLgx/*.zip`
            do
                echo "Analisando o arquivo $ZipLogo..."
                OSFNT=`echo $ZipLogo | awk -F '/' {'print $5'} | awk -F '-' {'print $1'} 2> /dev/null`
                unzip -j -o  $ZipLogo -d $FntLgx
                echo '' >> /tmp/bkpfnt.tmp
                echo "- Arquivos existentes na OS/Fnt $OSFNT e nao efetuado backup:" >> /tmp/bkpfnt.tmp 
                for OrgLogo in `unzip -l $ZipLogo | awk -F '\' {'print $6'} | grep -v '.cnv'`  
                do
                        VerDir=`echo $OrgLogo | awk -F '.' {'print $1'} |awk -F"[0-9]" '{print $1}' | cut -c 1-3`
                        if [ $VerDir = 'con' ]
                        then
                                VerDir=`echo 'contab'`
                        fi
                        FixDir="$Logo/$VerDir"
                        ls $FixDir | grep $OrgLogo > /dev/null
                        NotVer=$?
                        if [ $NotVer == 0 ]
                        then
                                if test ! -d $LgxBkp/$DtLgx/$OSFNT
                                then
                                        mkdir -p $LgxBkp/$DtLgx/$OSFNT
                                        echo "SELECT log_versao_prg.*, " >> $LgxBkp/$DtLgx/$OSFNT/files.sql
                                        echo "'$DtLgx' as date_time,'$OSFNT' as OS_Fnt,'$LgxBkp/$DtLgx/$OSFNT' as caminho "  >> $LgxBkp/$DtLgx/$OSFNT/files.sql
                                        echo "FROM log_versao_prg" >> $LgxBkp/$DtLgx/$OSFNT/files.sql
                                        echo "WHERE lower(log_versao_prg.num_programa) in (" >> $LgxBkp/$DtLgx/$OSFNT/files.sql
                                fi
                                echo "Movendo o arquivo $FixDir/$OrgLogo para $LgxBkp/$DtLgx/$OSFNT"
                                mv $FixDir/$OrgLogo $LgxBkp/$DtLgx/$OSFNT
                    echo "Copiando arquivo $FntLgx/$OrgLogo para $FixDir"
                    cp $FntLgx/$OrgLogo $FixDir
                    chmod 777 $FixDir/$OrgLogo
                    chown admlog.logix $FixDir/$OrgLogo
                                ARQFNT=`echo $OrgLogo | awk -F '.' {'print $1'}`
                                echo "'$ARQFNT', "  >> $LgxBkp/$DtLgx/$OSFNT/files.sql
                        else
                                echo "Arquivo $FixDir/$OrgLogo nao encontrado!" >> /tmp/bkpfnt.tmp
                    echo "Copiando arquivo $FntLgx/$OrgLogo para $FixDir"
                    cp $FntLgx/$OrgLogo $FixDir
                    chmod 777 $FixDir/$OrgLogo
                    chown admlog.logix $FixDir/$OrgLogo
                        fi
                done
                rm $ZipLogo
            done
            echo ''
            echo '*** CONVERSORES ENCONTRADOS ***'
            ls -lA $FntLgx/*.cnv > /dev/null 2> /dev/null
            ConfCNV=$?
            if [ ! $ConfCNV == 0 ]
            then
                 echo "Nao existem conversores a serem executados!"
            else      
                    echo "Foram encontrados os seguintes conversores para serem executados:"
                    for CNVLogo in `ls -A $FntLgx/*.cnv 2> /dev/null`
                    do
                        echo "Movendo conversor $CNVLogo para $Logo/cnv"
                        mv $CNVLogo $Logo/cnv
                    done
            fi
            rm -rf $FntLgx/*
            echo ''
            echo 'ERROS: Os seguintes erros foram encontrados durante a atualizacao:'
            cat /tmp/bkpfnt.tmp
            echo ''
            echo '*** FIM do scrip de backup das OSs/Fontes ***'
    fi
    echo ''
else
    echo "Processo de atualizacao somente da Base de Teste..."
    echo "==================================================="
    read enter
    ls -l $FntLgxTst/*.zip > /dev/null 2> /dev/null
    cat /dev/null > /tmp/bkpfnt.tmp 2> /dev/null
    ConfArq=$?
    if [ ! $ConfArq == 0 ]
    then
            echo "Nao existem Fontes/OSs a serem Atualizados no momento!"
        read enter
    else
            rm /tmp/bkpfnt.tmp > /dev/null 2> /dev/null
            echo "Foram encontrados os seguintes arquivos para atualizacao:"
            ls -l $FntLgxTst/*.zip |more
            echo ''
            for ZipLogo in `ls -A $FntLgxTst/*.zip`
            do
                echo "Analisando o arquivo $ZipLogo..."
                OSFNT=`echo $ZipLogo | awk -F '/' {'print $5'} | awk -F '-' {'print $1'} 2> /dev/null`
                unzip -j -o  $ZipLogo -d $FntLgxTst
                echo '' >> /tmp/bkpfnt.tmp
                    for OrgLogo in `unzip -l $ZipLogo | awk -F '\' {'print $6'} | grep -v '.cnv'`  
                    do
                            VerDir=`echo $OrgLogo | awk -F '.' {'print $1'} |awk -F"[0-9]" '{print $1}' | cut -c 1-3`
                            if [ $VerDir = 'con' ]
                            then
                                    VerDir=`echo 'contab'`
                            fi
                            FixDir="$LogoTst/$VerDir"
                            ls $FixDir | grep $OrgLogo > /dev/null
                            NotVer=$?
                            if [ $NotVer == 0 ]
                            then
                                    echo "Removendo o arquivo $FixDir/$OrgLogo"
                                    rm $FixDir/$OrgLogo
                        echo "Copiando arquivo $FntLgxTst/$OrgLogo para $FixDir"
                        cp $FntLgxTst/$OrgLogo $FixDir
                        chmod 777 $FixDir/$OrgLogo
                        chown admlog.logix $FixDir/$OrgLogo
                                    ARQFNT=`echo $OrgLogo | awk -F '.' {'print $1'}`
                            else
                                    echo "Arquivo $FixDir/$OrgLogo nao encontrado!" >> /tmp/bkpfnt.tmp
                        echo "Copiando arquivo $FntLgxTst/$OrgLogo para $FixDir"
                        cp $FntLgxTst/$OrgLogo $FixDir
                        chmod 777 $FixDir/$OrgLogo
                        chown admlog.logix $FixDir/$OrgLogo
                            fi
                    done
                    rm $ZipLogo
            done
            echo ''
    fi
        echo '*** CONVERSORES ENCONTRADOS ***'
        ls -lA $FntLgxTst/*.cnv > /dev/null 2> /dev/null
        ConfCNV=$?
        if [ ! $ConfCNV == 0 ]
        then
            echo "Nao existem conversores a serem executados!"
        else      
            echo "Foram encontrados os seguintes conversores para serem executados:"
            for CNVLogo in `ls -A $FntLgxTst/*.cnv 2> /dev/null`
            do
                       echo "Movendo conversor $CNVLogo para $LogoTst/cnv"
                       mv $CNVLogo $LogoTst/cnv
            done
        fi
        rm -rf $FntLgxTst/*
        echo ''
        echo '*** FIM do scrip de backup das OSs/Fontes ***'
fi

Nenhum comentário:

Postar um comentário