Abaixo estou postando um script de backup funcional do Ontape do nivel 0, 1 e 2
Algumas considerações para o funcionamento do script:
- Ter um NFS Server ativo, e com local para o armazenamento dos backups;
- Alterar o script com os diretorios de sua realidade;
- Montar o crontab adequadamente para que execute nos horarios apropriados;
- Servidor DNS configurado apropriadamente
##!/bin/sh
## Amilcar de Jesus Moreti
## ajmoreti@yahoo.com.br
##
## /usr/local/bin/Archive.sh
##
## Script de Backup {Level 0, Level 1 e Level 2} e Logical Logs
##
## Data Criacao = 07/10/2009 - Data Modificacao = 07/10/2009
##
## Versao = 1 - Release = 01
## Variaveis Informix
INFORMIXDIR=/usr/informix## Amilcar de Jesus Moreti
## ajmoreti@yahoo.com.br
##
## /usr/local/bin/Archive.sh
##
## Script de Backup {Level 0, Level 1 e Level 2} e Logical Logs
##
## Data Criacao = 07/10/2009 - Data Modificacao = 07/10/2009
##
## Versao = 1 - Release = 01
## Variaveis Informix
DBCENTURY=C
INFORMIXSERVER=prd
ONCONFIG=onconfig.prd
DBDATE=dmy4/
DBMONEY=,
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
export INFORMIXDIR DBCENTURY INFORMIXSERVER ONCONFIG DBDATE DBMONEY LD_LIBRARY_PATH
## Variaveis de Sistemas
Null=/dev/null
PATH=$INFORMIXDIR/bin:$PATH
HourBkp=`date +%H%M`DirOnt=/ontapeDirOntRem="isis:$DirOnt"dirArc=$DirOnt/archiveDirdirLog=$DirOnt/logicalLogs
dirNot=$DirOnt/Nocturne
dirDiu=$DirOnt/daily
##----------------------------------------------------------------------------------
# Funcao NFS
fnMountNFS ()
{
sudo mount -t nfs $OntRem $DirOnt
}
fnUmountNFS ()
{
sudo umount $DirOnt
}
# Funcao para criacao dos diretorios
fnMake_dirArc ()
{
mkdir $dirArc
chmod 777 $dirArc
}
fnMake_dirLog ()
{
mkdir $dirLog
chmod 777 $dirLog
}
# Verifica se a NFS esta montada.
df |grep $OntRem > /dev/null 2> /dev/null
Ver=$?
while [ $Ver != 0 ]
do
fnMountNFS
Ver=$?
done
cd $HOME
# Verifica se o diretorios existem e se possuem permissoes adequadas.
if [ ! -d $dirArc ]
then
fnMake_dirArc
else
if test ! -r $dirArc -a ! -w $dirArc -a ! -x $dirArc
then
chmod 777 $dirArc
fi
fi
if [ ! -d $dirLog ]
then
fnMake_dirLog
else
if test ! -r $dirLog -a ! -w $dirLog -a ! -x $dirLog
then
chmod 777 $dirLog
fi
fi
if [ ! -d $dirNot ]
then
mkdir $dirNot
mkdir $dirNot/`date +%a`
else
if [ ! -d $dirNot/`date +%a` ]
then
mkdir $dirNot/`date +%a`
fi
fi
####################################
hostName="vishnu"
serverNum="5"
Ln="L0"
if [ $HourBkp -eq 2315 ]
then
if [ -f $dirNot/`date +%a`/$hostName\_$serverNum\_$Ln ]
then
rm $dirNot/`date +%a`/$hostName\_$serverNum\_$Ln
rm $dirNot/`date +%a`/Logs*.tar
fi
echo -e "Efetuando Backup Nivel 0"
ontape -s -L 0 -d
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo "Backup Nivel 0 - Efetuado com Sucesso"
echo -e "Copiando o Archive para o diretorio Correto"
mv $dirArc/$hostName\_$serverNum\_$Ln $dirNot/`date +%a`
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo -e "Copia do Archive efetuada com Sucesso"
echo -e "targear arquivos de logs."
numIni=`ls -t $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
numEnd=`ls $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
tar cvpPf $dirNot/`date +%a`/Logs\_$numIni\_$numEnd.tar --remove-files $dirLog/*
else
echo -e "Ocorreu Problema com a Copia do Archive - Verificar"
fi
oncheck -pr |egrep -w "Archive Level 0" -A 5 > $dirNot/`date +%a`/Oncheck_Log_0.log
else
echo "Ocorreu Erro - Verificar o Problema"
fi
elif [ $HourBkp -eq 1315 ]
then
if [ ! -d $dirDiu ]
then
mkdir $dirDiu
mkdir $dirDiu/`date +%a`
else
if [ ! -d $dirDiu/`date +%a` ]
then
mkdir $dirDiu/`date +%a`
fi
fi
Ln="L1"
if [ -f $dirDiu/`date +%a`/$hostName\_$serverNum\_$Ln ]
then
rm $dirDiu/`date +%a`/$hostName\_$serverNum\_$Ln
rm $dirDiu/`date +%a`/Logs*.tar
fi
echo -e "Efetuando Backup Nivel 1"
ontape -s -L 1 -d
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo "Backup Nivel 1 - Efetuado com Sucesso"
echo -e "Copiando o Archive para o diretorio Correto"
mv $dirArc/$hostName\_$serverNum\_$Ln $dirDiu/`date +%a`/
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo -e "Copia do Archive efetuada com Sucesso"
numIni=`ls -t $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
numEnd=`ls $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
tar cvpPf $dirDiu/`date +%a`/Logs\_$numIni\_$numEnd.tar --remove-files $dirLog/*
else
echo -e "Ocorreu Problema com a Copia do Archive - Verificar"
fi
oncheck -pr |egrep -w "Archive Level 1" -A 5 > $dirDiu/`date +%a`/Oncheck_Log_1.log
else
echo "Ocorreu Erro - Verificar o Problema"
fi
elif [ $HourBkp -eq 1815 ]
then
if [ ! -d $dirDiu ]
then
mkdir $dirDiu
mkdir $dirDiu/`date +%a`
else
if [ ! -d $dirDiu/`date +%a` ]
then
mkdir $dirDiu/`date +%a`
fi
fi
Ln="L2"
if [ -f $dirDiu/`date +%a`/$hostName\_$serverNum\_$Ln ]
then
rm $dirDiu/`date +%a`/$hostName\_$serverNum\_$Ln
rm $dirDiu/`date +%a`/Logs*.tar
fi
echo -e "Efetuando Backup Nivel 2"
ontape -s -L 2 -d
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo "Backup Nivel 2 - Efetuado com Sucesso"
echo -e "Copiando o Archive para o diretorio Correto"
mv $dirArc/$hostName\_$serverNum\_$Ln $dirDiu/`date +%a`/
VerStatus=$?
if [ $VerStatus -eq 0 ]
then
echo -e "Copia do Archive efetuada com Sucesso"
numIni=`ls -t $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
numEnd=`ls $dirLog | awk -F"_" '{print $3}' | tail -1 | tail -c5`
tar cvpPf $dirDiu/`date +%a`/Logs\_$numIni\_$numEnd.tar --remove-files $dirLog/*
else
echo -e "Ocorreu Problema com a Copia do Archive - Verificar"
fi
oncheck -pr |egrep -w "Archive Level 2" -A 5 > $dirDiu/`date +%a`/Oncheck_Log_2.log
else
echo "Ocorreu Erro - Verificar o Problema"
fi
else
contLog=`onstat -l | grep U------ | awk '{print $3}' | wc -l`
if [ $contLog -ge 1 ]
then
ontape -a -d
fi
fi
Nenhum comentário:
Postar um comentário