A pedido do nosso amigo Caio estou postando aqui um script para a atualização da rpo do logix em producação – Online.
Ja sabemos que com o totvstec não é possivel fazer uma atualização da rpo on-line, porem com esse escript é possivel isso, lembrando que esse script foi escrito para o ambiente onde trabalho, então é preciso fazer a alteração de acordo com o ambiente de cada um. Peço a todos que prestem muita atenção e façam testes antes de colocar esses script em produção, pois pode parar o sistema.
Grande Abraço Caio, e use com cuidado, qualquer duvida estou a disposição.
#!/bin/bash
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# Amilcar de Jesus Moreti @
# E-Mail - ajmoreti@yahoo.com.br @
# MsN - acmoreti@msn.com @
# @
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#********************************************************************************
# Objetivo : Atualizar RPO com o Sistema em Producao *
# Para atualizar programas em um sistema em producao, recomenda-se criar dois ambientes no arquivo*
# de configuracao (totvsappserver.ini) e posteriormente dois ambientes de trabalho na Ferramenta *
# de desenvolvimento IDE. *
#********************************************************************************
# Estrutura do diretorio para armazenamento das RPO's
# /totvs/apo/logix/aaaammdd_n
#
# Onde:
# dd - dia em que o RPO sera atualizado
# mm - mes que que o RPO sera atualizado
# aaaa - ano em que o RPO sera atualizado
# n - sequencia de atualizado
#
dDate="`date +%Y%m%d_%H`"
sTotvs="/totvs"
sTotvsTst="/totvs_tst"
sOrigDirApo="$sTotvsTst/apo/logix"
sOrigApo="$sOrigDirApo/lgxp102.rpo"
sDestDirApo="$sTotvs/apo/logix"
sDestDateApo="$sDestDirApo/$dDate"
sEnvironment="logix102"
sTotvsDirBin="$sTotvs/bin/appserver"
sTotvsIni="$sTotvsDirBin/totvsappserver.ini"
nVerVg=`df -P $sTotvs|sed 1d|awk '{print $5}'|awk -F% '{print $1}'`
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# Amilcar de Jesus Moreti @
# E-Mail - ajmoreti@yahoo.com.br @
# MsN - acmoreti@msn.com @
# @
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#********************************************************************************
# Objetivo : Atualizar RPO com o Sistema em Producao *
# Para atualizar programas em um sistema em producao, recomenda-se criar dois ambientes no arquivo*
# de configuracao (totvsappserver.ini) e posteriormente dois ambientes de trabalho na Ferramenta *
# de desenvolvimento IDE. *
#********************************************************************************
# Estrutura do diretorio para armazenamento das RPO's
# /totvs/apo/logix/aaaammdd_n
#
# Onde:
# dd - dia em que o RPO sera atualizado
# mm - mes que que o RPO sera atualizado
# aaaa - ano em que o RPO sera atualizado
# n - sequencia de atualizado
#
dDate="`date +%Y%m%d_%H`"
sTotvs="/totvs"
sTotvsTst="/totvs_tst"
sOrigDirApo="$sTotvsTst/apo/logix"
sOrigApo="$sOrigDirApo/lgxp102.rpo"
sDestDirApo="$sTotvs/apo/logix"
sDestDateApo="$sDestDirApo/$dDate"
sEnvironment="logix102"
sTotvsDirBin="$sTotvs/bin/appserver"
sTotvsIni="$sTotvsDirBin/totvsappserver.ini"
nVerVg=`df -P $sTotvs|sed 1d|awk '{print $5}'|awk -F% '{print $1}'`
if [ $nVerVg -ge 80 ]
then
echo "Antes de atualizar a RPO por favor eliminar RPO's Antigas"
echo "CUIDADO!!!"
echo "NUNCA ELIMINE O PRIMEIRO ARQUIVO"
for i in `ls -t $sDestDirApo`
do
echo "Eliminar a RPO $i ?"
read sConfir
if test $sConfir == y
then
rm -r -i $sDestDirApo/$i
fi
done
fi
then
echo "Antes de atualizar a RPO por favor eliminar RPO's Antigas"
echo "CUIDADO!!!"
echo "NUNCA ELIMINE O PRIMEIRO ARQUIVO"
for i in `ls -t $sDestDirApo`
do
echo "Eliminar a RPO $i ?"
read sConfir
if test $sConfir == y
then
rm -r -i $sDestDirApo/$i
fi
done
fi
echo "Fazer a copia da nova RPO de producao?"
read sConfirma
if test $sConfirma == "y"
then
if test -d $sDestDateApo
then
echo "*** ATENCAO ***"
echo "O diretorio SourcePath ja existe"
echo "Isso significa que voce ja fez uma atualizacao nos ultimos 60 minutos"
echo "Voce deseja criar uma nova SourcePath ?"
read sConfirma
if test $sConfirma == "y"
then
dDate=`date +%Y%m%d_%H%M`
sDestDateApo=$sDestDirApo/$dDate
mkdir -p $sDestDateApo
cp $sOrigApo $sDestDateApo
sConf=$?
if test $sConf == 0; then
echo "Copia de RPO foi gerada com sucesso!!!"
fi
fi
else
mkdir -p $sDestDateApo
cp $sOrigApo $sDestDateApo
sConf=$?
if test $sConf == 0; then
echo "Copia de RPO foi gerada com sucesso!!!"
fi
fi
fi
read sConfirma
if test $sConfirma == "y"
then
if test -d $sDestDateApo
then
echo "*** ATENCAO ***"
echo "O diretorio SourcePath ja existe"
echo "Isso significa que voce ja fez uma atualizacao nos ultimos 60 minutos"
echo "Voce deseja criar uma nova SourcePath ?"
read sConfirma
if test $sConfirma == "y"
then
dDate=`date +%Y%m%d_%H%M`
sDestDateApo=$sDestDirApo/$dDate
mkdir -p $sDestDateApo
cp $sOrigApo $sDestDateApo
sConf=$?
if test $sConf == 0; then
echo "Copia de RPO foi gerada com sucesso!!!"
fi
fi
else
mkdir -p $sDestDateApo
cp $sOrigApo $sDestDateApo
sConf=$?
if test $sConf == 0; then
echo "Copia de RPO foi gerada com sucesso!!!"
fi
fi
fi
echo ""
echo "O Arquivo totvsappserver.ini vai ser alterado para o acesso a RPO atualizada"
echo "Confirma a Operacao?"
read sConfirma
sDestDirApo="\/totvs\/apo\/logix"
sDestDateApo="$sDestDirApo\/$dDate"
sTmpFile="/tmp/totvsappserver.ini"
if test $sConfirma == "y"; then
mv $sTotvsIni $sTmpFile
sed -e '3s/.*/sourcepath='${sDestDateApo}'/' $sTmpFile > $sTotvsIni
rm $sTmpFile
mv $sTotvsIni $sTmpFile
sed -e '17s/.*/sourcepath='${sDestDateApo}'/' $sTmpFile > $sTotvsIni
fi
echo "O Arquivo totvsappserver.ini vai ser alterado para o acesso a RPO atualizada"
echo "Confirma a Operacao?"
read sConfirma
sDestDirApo="\/totvs\/apo\/logix"
sDestDateApo="$sDestDirApo\/$dDate"
sTmpFile="/tmp/totvsappserver.ini"
if test $sConfirma == "y"; then
mv $sTotvsIni $sTmpFile
sed -e '3s/.*/sourcepath='${sDestDateApo}'/' $sTmpFile > $sTotvsIni
rm $sTmpFile
mv $sTotvsIni $sTmpFile
sed -e '17s/.*/sourcepath='${sDestDateApo}'/' $sTmpFile > $sTotvsIni
fi
Algumas observações a serem consideradas, para a logica desse script funcionar, obrigatoriamente tem que haver uma base de teste.
A primeira parte do script, verifico a tamanho da file system, para ver se não esta cheia, é preciso ficar atento, pois no meu ambiente trabalho com Volume Logico.
A primeira parte do script, verifico a tamanho da file system, para ver se não esta cheia, é preciso ficar atento, pois no meu ambiente trabalho com Volume Logico.
Abraços a todos.
Nenhum comentário:
Postar um comentário