Script backup com log + teste de integridade

1. Script backup com log + teste de integridade

Rubismar Camacho
rubis

(usa CentOS)

Enviado em 12/10/2015 - 13:14h

E ai pessoal,
tenho um script de backup que ja utilizo na empresa, mas to querondo aprimoralo tendo em vista que sou iniciante em shell to precisando de uma ajuda de vocẽs. Meu cenário hoje é o seguinte. nos meu servidores onde faço o bkp tenho discos montados em outro servidor onde é um dataprotector, hoje se este nao esta montado ja da problema, queria um meio de o script montar o disco no final descmotar, outra duvida é o arquivo de log, ele ele não esta criando o arquivo do log com a data no final. Estou testando a integridade dos arquivos para ter certeza que o arquivo original é o mesmo do copiado para do server do dataprotector, porem não sei um meio de fazer essa verificação pelo tamanho do arquivo, consegui fazer só por md5, mas nao me ajuda muito. Segue script que utilizo.

LOG="/servidor/log_bkp$DATA.txt"
ERRO=$?
DATA=`date +%d%m`
DIA_ATUAL=`date +%m%d`
DIR_BKP="/BKP"
DIR_CP="/DATAPROTECTOR/1001/"
ARQUIVO_CP=${DIR_CP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2
ARQUIVO_ORI=${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2

cd /retag

mysqlcheck -uroot -p123456 -a --auto-repair controle
mysqlcheck -uroot -p123456 -a --auto-repair retag

#EFETUANDO BACKUP
if [ $ERRO != "0" ]
# Grava o LOG com o código do Erro encontrado
then
echo "---------Backup `date +%d-%m`---------" >> $LOG
echo "Erro na gravacao do backup = $ERRO" >> $LOG
echo "---------------------------------------" >> $LOG
# Senao (Caso o retorno seja 1, ou seja, sem erro)
else
# Grava o log informado que tudo esta OK
echo "---------Backup `date +%d-%m`---------" >> $LOG
echo "gravacao do backup esta ok" >> $LOG

if [ -d ${DIR_BKP} ]
then
if [ -f ${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2 ]
then
rm -f ${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2
fi
mysqldump -uroot -p123456 -a -c --database controle > ${DIR_BKP}/xxx.sql
mysqldump -uroot -p123456 -a -c retag >>${DIR_BKP}/xxx.sql
mysqldump -uroot -p123456 -a -d retag >>${DIR_BKP}/xxx.sql
mysqldump -uroot -p123456 -a -c retag mercador >>${DIR_BKP}/xxx.sql
tar -jcvf ${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2 ${DIR_BKP}/*.sql
${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2 >> $ARQUIVO_ORI
rm -f ${DIR_BKP}/*.sql
fi
fi
cp -rpvf ${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2 ${DIR_CP}

md5sum $ARQUIVO_ORI
md5sum $ARQUIVO_CP

if [ ${ARQUIVO_ORI} == ${ARQUIVO_CP} ]; then

echo "Integridade dos arquivos está OK." >> $LOG
else
echo "Diferença na integridade dos arquivos." >> $LOG

fi
Aguardo ajuda.


  


2. erro execução

Rubismar Camacho
rubis

(usa CentOS)

Enviado em 12/10/2015 - 13:31h

e quando tento executalo ta dando erro em algumas linhas:
/bkp_banco.sh: linha 40: /BKP/bkp_kw_1001_1012.tar.bz2: Permissão negada
./bkp_banco.sh: linha 45: /servidor/log_bkp.txt: Permissão negada
8c26b8ef0b3f74875a4d8ee8d8b96a56 /BKP/bkp_kw_1001_1012.tar.bz2
md5sum: /DATAPROTECTOR/1001//bkp_kw_1001_1012.tar.bz2: Arquivo ou diretório não encontrado
./bkp_banco.sh: linha 54: /servidor/log_bkp.txt: Permissão negada



3. Re: Script backup com log + teste de integridade

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 13/10/2015 - 18:59h

Olá,

Aparentemente o usuário que esta usando pr rodar o script, não tem permissão na pasta e subpastas /servidor e /DATAPROTECTOR

Sugiro rodar :
chown -R usuario /servidor
chown -R usuario /DATAPROTECTOR



Ou acertar as permissoes e adicionalo ao gru que deve ter acesso.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


4. Re: Script backup com log + teste de integridade

Rubismar Camacho
rubis

(usa CentOS)

Enviado em 15/10/2015 - 11:50h

tonyhts escreveu:

Olá,

Aparentemente o usuário que esta usando pr rodar o script, não tem permissão na pasta e subpastas /servidor e /DATAPROTECTOR

Sugiro rodar :
chown -R usuario /servidor
chown -R usuario /DATAPROTECTOR



Ou acertar as permissoes e adicionalo ao gru que deve ter acesso.

abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---



ok, referente a permissão deu certo, agora tenho outra duvida. to tentando verificar a integridade dos arquivos to fazendo desta forma:
depois que faço o bkp utilizo este parametro no arquivos compactado. TAMANHO_ORI=$(du -hsm ${DIR_BKP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2)

depois o script copia o arquivo para um diretorio montado depois de copiado quero saber se o tamanho do arquivo copiado confere com o original, entao faço o seguinte:
TAMANHO_CP=$(du -hsm ${DIR_CP}/bkp_kw_1001_${DIA_ATUAL}.tar.bz2)


if [ ${TAMANHO_ORI} -ne ${TAMANHO_CP} ]; then

echo "${HORA}Diferença no arquivos. Arquivo orig possui: $TAMANHO_ORI e Arquivo copy possui: $TAMANHO_CP" >> $LOG
else
echo "${HORA}Integridade dos arquivos OK." >> $LOG

fi
só que quando do um debug, ele pega o tamanho do arquivo em mb e depois todo o diretorio e nome do arquivo, ai na hora do if ele se perde, queria uma forma de na hora do if utilizar somente o tamanho.
ele ta pegando algo assim : 162 /diretorio/diretorio/nome_arquivo







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts